作者:cleverpig
這是一個(gè)短小的Ruby入門,完全讀完只需20分鐘。讓我們從編寫世界上最簡(jiǎn)單的"Hello,World"程序開始逐步深入了解Ruby的類、block、迭代器等特征,也許這對(duì)你來講還遠(yuǎn)遠(yuǎn)不過,但對(duì)于20分鐘的入門來講已經(jīng)非常難得了。
介紹
這是一個(gè)短小的Ruby入門,完全讀完只需20分鐘。這里假設(shè)讀者已經(jīng)安裝了Ruby,假如你沒有安裝的話,請(qǐng)?jiān)陂喿x文前訪問Ruby官方網(wǎng)站進(jìn)行下載并安裝。
交互式的Ruby
打開IRB(交互式Ruby外殼):
假如你使用Mac OS X,那么請(qǐng)打開終端窗口輸入irb;
假如你使用linux,那么請(qǐng)打開shell輸入irb;
假如你使用windows,那么請(qǐng)?jiān)陂_始菜單中找到Ruby->fxri,并執(zhí)行它。
Ok,在打開IRB之后,在其中輸入"Hello World"。
Ruby服從你的安排!
發(fā)生了什么?我們剛才編寫了世界上最短小的“Hello World”程序嗎?這么說不太確切。第二行輸出是IRB告訴我們:上一個(gè)表達(dá)式的評(píng)估結(jié)果。假如我們希望打印出“Hello World”,那么就還需要一點(diǎn)努力:
puts在Ruby中是一個(gè)簡(jiǎn)單的打印輸出命令。后面的“=> nil”表示什么?——那是表達(dá)式的結(jié)果。Puts總是返回nil,這是Ruby中表示“絕對(duì)無值”(absolutely-positively-nothing value)的方式,看上去有些類似java中的null。
你的免費(fèi)計(jì)算器在這里!
無需做什么,我們就能把IRB作為一個(gè)簡(jiǎn)單的計(jì)算器使用:
這樣就能計(jì)算3+2。夠簡(jiǎn)單的!那么3乘以2如何?你可以在下面繼續(xù)輸入3*2,也可以回到上面(3+2處)重新修改你剛剛輸入的計(jì)算公式。使用鍵盤上的向上鍵,使光標(biāo)到達(dá)3+2那一行,再用左鍵移動(dòng)光標(biāo)到加號(hào)上,然后使用空格鍵進(jìn)行修改。
下面,讓我們嘗試計(jì)算3的平方:
在Ruby語言中,**表示冪運(yùn)算。那么如何計(jì)算平方根呢?
Ok,等一下,表達(dá)式中的sqrt(9)表示什么?你一定能猜到這是計(jì)算9的平方根。而Math表示什么?不要著急,下面就讓我們進(jìn)一步了解像Math這樣的模塊。
模塊——按照主題分組的代碼
Math是Ruby內(nèi)建的數(shù)學(xué)模塊。在Ruby中,模塊提供了兩種角色:一種角色是將類似的方法聚集在同一個(gè)“家族”名下。因此,Math也包括sin、tan這樣的方法。第二種角色是一個(gè)圓點(diǎn)(dot),它標(biāo)記了消息的接收者。什么是消息?在上面的例子中,sqrt(9)便是消息,它意味著調(diào)用sqrt方法取出9的平方根。
Sqrt方法調(diào)用的結(jié)果是3.0。你可能注重到它并不是3。這是因?yàn)槎鄶?shù)情況下,數(shù)字的平方根并不是整數(shù),所以這里返回了一個(gè)浮點(diǎn)數(shù)。
那么我們?nèi)绾斡涀∵@些計(jì)算結(jié)果呢?——將結(jié)果賦值給變量。
如何定義方法?
如何才能方便省事地隨意輸出字符串,而無需過多地勞煩我們的手指呢?——我們需要定義一個(gè)方法!
上面的代碼中第一行“def h”標(biāo)志著方法定義的開始。它告訴Ruby我們正在定義一個(gè)名為h的方法。下面一行是方法體:puts "Hello World"。最后,也就是第三行“end”通知Ruby我們完成了方法定義。Ruby的回應(yīng)“=> nil”告訴我們它已經(jīng)知道我們定義了此方法。
簡(jiǎn)短、重復(fù)地調(diào)用方法
現(xiàn)在,讓我們嘗試多次執(zhí)行這個(gè)方法:
哈,這太輕易了。在Ruby中調(diào)用某個(gè)方法只需將方法名提交給Ruby。當(dāng)然,這是在方法沒有參數(shù)的情況下。假如你愿意也可以添加一個(gè)空白的括號(hào),但是這沒有必要。
假如我們想對(duì)某個(gè)人說hello而不是整個(gè)“世界”(world),那該怎么做?——重定義h方法使它接收name參數(shù)。
嗯,現(xiàn)在看來工作正常。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注