大家好,我是小K。今天的進度是這兩個習題。
Exercise 1: A Good First Program
Exercise 2: Comments And Pound Characters
習題1是基本的印出。Ruby的印出寫法是puts。所以每一個程式語言的第一個基本範例:印出 Hello World! 在Ruby的世界就像下面這樣寫。
puts "Hello World!";
沒有分號。這點讓我小小驚訝了一下。我學的程式語言不多,所以是第一次寫到不需要用分號結尾的語法。這章的範例是要我們印出多行句子。
補充一下,我用的編輯器是Sublime Text3。(因為之前用過還蠻熟悉的就直接用這款了。)Ruby的副檔名為.rb結尾。要編譯執行Ruby的程式,所用的command就是ruby。非常直觀,我很喜歡!不像C要用gcc,Java要用javac,哈哈。
其實Ruby的印出不只有puts這一種寫法,還有另外一種大家都很熟print。兩者的差別在於puts會自動幫你換行,而print印出後,游標還會接在句子的後面(就是不會換行的意思)。
比如下面程式碼:
在印完 "This line will not change "後,下面的"Right?"會緊接在後面,之後才會換行。
還有另一種「檢驗字串」的輸出-p。書本上是寫「字串會包含一些你要印出東西的相關資訊」。但我實際印出後,發現跟一般印出沒有什麼差別,可能這部分還得去研究一下,還是有哪位前輩知道意思嗎??
再來是關於練習1的習題,不過我在上面的程式中就有把它寫上去了。
1. 讓你的程式再多印一行。
2. 讓你的程式只印出某一行。
3. #octothorp,它的作用是甚麼?
恩,看了以上的程式就可以知道,他是用來忽略程式碼用的。沒有拉~不過應該大多用來寫註解,或是在做測試時,用來註解某段程式,讓它先暫時不執行。
OK!那習題1的部分在這裡結束。下面要進行習題2了,不過內容好像跟剛剛差不多,主要是練習註解的使用。所以我也不多做解釋,我直接PO我的程式碼,稍微寫一些過程這樣。
這是習題上面的範例,我也就這樣照打一遍。從上面的程式碼來看,很清楚就能知道除了沒有被 # 掉的那兩行puts有執行之外,其他一律被忽略了。
習題2的Study Drills比較偏向於記憶的部分。比如記住octothrope這個單字、它的用法。還讓我們去檢查有沒有哪一個單字打錯,有的話趕快修正。恩,的確是寫完程式後必做的事情,間接訓練一下Debug的敏銳度(笑)。
好的,那今天的分享就到這邊結束!明天見囉~
程式碼同步分享於Github:https://github.com/peggy110336/ruby_hard_way
By 小K
有關 p 與 puts 的差別,看這一篇應該比較清楚:
p vs puts in Ruby
驗證一下p是puts 對象的 inspect:
<pre class="c" name="code">>> arr = [1,2,3]
=> [1, 2, 3]
>> puts arr
1
2
3
=> nil
>> p arr
[1, 2, 3]
=> [1, 2, 3]
>> puts arr.inspect
[1, 2, 3]
=> nil
>>