我的第一個Ruby程序

寫在開頭

因為一些原因最近開始我的學(xué)習(xí)Ruby之旅祭阀,起初還是有點小興奮的垮卓,畢竟我們都是愛學(xué)習(xí)的娃(臉紅)垫桂。

關(guān)于Ruby,這里簡單介紹一下粟按。

首先Ruby是一種腳本語言诬滩,就像我們平時用的shell一樣,此外它還是一種純粹的面向?qū)ο缶幊陶Z言灭将,在接觸了ruby之后疼鸟,我覺得在語義化方面ruby做的很好,語法表達(dá)什么的都很接近平時說的語言庙曙。

語法上空镜,因為編程語言大多是相通的,也沒有那么難理解捌朴,值得說的是我覺得在學(xué)習(xí)一門語言的時候不用花很多時間去記它的語法吴攒,只是背過不會用還是徒勞,我的方法是先大致了解一下它的語法砂蔽,過程中看一看它的demo洼怔,可以的話自己寫一寫,想不起來的時候網(wǎng)上查一查就知道了左驾,所謂用得多了茴厉,自然就會了泽台。

當(dāng)然,首先你需要配置環(huán)境矾缓。

如何安裝
Ruby基礎(chǔ)學(xué)習(xí)

FizzBuzz的練習(xí)

題目:

用Ruby實現(xiàn)一個程序,輸出從一到指定范圍的數(shù)字稻爬,當(dāng)遇到3的倍數(shù)時就輸出"Fizz"嗜闻,當(dāng)遇到5的倍數(shù)時就輸出''Buzz'',當(dāng)遇到既是3的倍數(shù)又是5的倍數(shù)時就輸出''FizzBuzz''桅锄;
例如:如果范圍是1~15琉雳,那么輸出如下:
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz

當(dāng)我拿到這個題的時候,大致分了以下幾步去完成:

1. 新建一個ruby文件友瘤,輸出''hello''翠肘;
2. 寫一個循環(huán),輸出對應(yīng)數(shù)字;
3. 在循環(huán)中加上判斷條件辫秧,輸出對應(yīng)的字符串或數(shù)字束倍;
4. 這段程序抽了一個方法,并將循環(huán)次數(shù)作為參數(shù)傳給該方法盟戏;

這樣一分的話每一步都很容易绪妹,也不容易出錯,主要的點有標(biāo)準(zhǔn)輸出函數(shù)柿究,循環(huán)邮旷,條件判斷,方法蝇摸,語法上不知道的就去查婶肩。

看起來很容易,但是在我寫的時候因為一點疏漏找了好久才找到錯誤貌夕,因為最初寫的時候并不是按照上面的順序?qū)懙穆杉撸Y(jié)果在寫if條件的時候忘了加end,結(jié)果一直運行出錯蜂嗽,才不得不回頭一步步開始苗膝,然后很快就完成了。

so植旧,一定要一步步慢慢做才更高效辱揭。

以下是我的實現(xiàn),歡迎交流學(xué)習(xí)哈:
1. 沒有單元測試的版本

源碼

結(jié)果

2. 有單元測試的版本

測試
實現(xiàn)
結(jié)果

這里大致說一下有單元測試的版本病附,跟其他語言的測試一樣问窃,有方法名,斷言完沪。

在Ruby的單元測試中域庇,需要定義一個類繼承于Test::Unit::TestCase嵌戈,這里的''::''表示命名空間,可以理解為路徑听皿,例如''/etc/user''熟呛。

代碼第一行是引入''test/unit'',因為后面要繼承它尉姨,第二行是引入實現(xiàn)的文件庵朝,因為我將實現(xiàn)封裝了一個類,所以需要生成一個實例又厉,即調(diào)用類的new方法九府,這是每個類默認(rèn)有的,然后定義了一個方法覆致,方法體內(nèi)有兩個斷言侄旬,表示兩個測試用例,ruby中的斷言有多種寫法煌妈,如下:

1. assert 2 == 2
2. assert_equal 2, 2
3. assert_equal 2, 1+1

左邊的是期望的結(jié)果儡羔,右邊的是實際的結(jié)果。

安利時間

給大家推薦一個學(xué)習(xí)Ruby的''游戲''声旺,它是一個類似于闖關(guān)游戲的東西笔链,會帶著你在闖關(guān)的過程中學(xué)到很多,關(guān)于Ruby基礎(chǔ)足夠了腮猖,戳這里安裝哦
(用法見readme.md

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鉴扫,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子澈缺,更是在濱河造成了極大的恐慌坪创,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件姐赡,死亡現(xiàn)場離奇詭異莱预,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)项滑,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門依沮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人枪狂,你說我怎么就攤上這事危喉。” “怎么了州疾?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵辜限,是天一觀的道長。 經(jīng)常有香客問我严蓖,道長薄嫡,這世上最難降的妖魔是什么氧急? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮毫深,結(jié)果婚禮上吩坝,老公的妹妹穿的比我還像新娘。我一直安慰自己哑蔫,他們只是感情好钾恢,可當(dāng)我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著鸳址,像睡著了一般。 火紅的嫁衣襯著肌膚如雪泉懦。 梳的紋絲不亂的頭發(fā)上稿黍,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天,我揣著相機(jī)與錄音崩哩,去河邊找鬼巡球。 笑死,一個胖子當(dāng)著我的面吹牛邓嘹,可吹牛的內(nèi)容都是我干的酣栈。 我是一名探鬼主播,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼汹押,長吁一口氣:“原來是場噩夢啊……” “哼矿筝!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起棚贾,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤窖维,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后妙痹,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體铸史,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年怯伊,在試婚紗的時候發(fā)現(xiàn)自己被綠了琳轿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡耿芹,死狀恐怖崭篡,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情猩系,我是刑警寧澤媚送,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布,位于F島的核電站寇甸,受9級特大地震影響塘偎,放射性物質(zhì)發(fā)生泄漏疗涉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一吟秩、第九天 我趴在偏房一處隱蔽的房頂上張望咱扣。 院中可真熱鬧,春花似錦涵防、人聲如沸闹伪。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽偏瓤。三九已至,卻和暖如春椰憋,著一層夾襖步出監(jiān)牢的瞬間厅克,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工橙依, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留证舟,地道東北人。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓窗骑,卻偏偏與公主長得像女责,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子创译,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容

  • 學(xué)了ruby之后做了一個程序抵知,可以快速打開瀏覽器收郵件,因為我們的outlook郵箱每次都需要登陸一下昔榴,覺得很麻煩...
    超兒閱讀 626評論 2 4
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理辛藻,服務(wù)發(fā)現(xiàn),斷路器互订,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 1吱肌、學(xué)習(xí)使我快樂 早就聽說Ruby這個語言的表達(dá)能力是一般的語言不能比的,現(xiàn)在終于有機(jī)會見識見識啦仰禽,雖然一開始是拒...
    半生不熟_閱讀 485評論 9 4