大家好,我是小K。今天的進度是以下4個習題。
Exercise 8: Printing, Printing
Exercise 9: Printing, Printing, Printing
7、8、9主要是練習不同的輸出方法。第10章有提到一些跳脫序列的寫法。
首先是Exercise7,這個習題沒有提到新東西,練習之前所提到的格式化輸出、print和puts的差別、字串連接的辦法等。其中有一行我覺得非常有趣:
puts "." * 10
甚麼?字串可以做運算?以前寫Java的時候,要印出10個點或10個星星是要寫一個for迴圈把它印出來。在Ruby只要在字串後面加個*10就好了?!雖然不太敢相信,但是Ruby就真的是這樣寫,太好玩了~(笑)
Exercise8在中文版和英文版,所要練習的範例不太一樣。而我是兩種都把他寫一遍,順便比較兩者的差異。
中文版的話,就是一般的格式化印出。這在昨天有提到過,應該還記憶猶新~設定好要輸出的格式,再把值或字串用[ ]刮起來,加上%,放到變數的後面,去對應到相對的位置。
英文版的練習範例,是把變數命名再去格式化。甚麼意思咧?詳見範例。
在昨天的範例中,我們會用#{},將變數(字串或整數)放進字串裡面印出,但是那個變數的名稱是寫死的,比如說name="K-Peggy",那name就只能印出K-Peggy;而當你想要將變數靈活運用,讓變數名稱可以一次對應多種values,就可以用%{}這個方式。
Exercise9的練習,就有出現新東西囉!前面還是練習簡單的印出,但在後面的時候,練習了如何一次印出多行文字的方法。
在第2行,字串中間穿插了\n的跳脫字元,這是什麼意思呢?有寫過C的應該也是非常熟悉,就是換行字元。所以當他印出的時候,就會做換行的動作。
而7~12行,就是印出多行文字的寫法。用三個雙引號將內容包起來,裡面的內容就會一次印出來,不用加\n,他也會自動換行,非常方便!
中文版的範例練習,是將多行文字命名。詳見範例。
有點像是在程式裡面寫一篇有標題的文章。
不過用Sublime Text編寫的話,除非將所有的內容都將它命名(變數)在印出(Exercise10會再出現),不然直接puts會像上面那樣,顏色參差不齊,有單引號的地方會改成字串的顏色,整數就會變成粉紅色等,但其實這整個內容,從<<PARAGRAPH~PARAGRAPH都是字串。
Exercise10,今天的最後一個進度。主要是要解釋甚麼是「多行輸出」和跳脫字元。
我先PO上練習範例程式碼。
發現新東西了嗎??沒錯,問得好,\t是甚麼?他也是一種跳脫字元,剛剛上面有提到\n是換行,那\t的作用是甚麼呢?-它的作用就像你在word上按一下tab鍵,會自動幫你空格。
在第3行,還有出現另一種特別的寫法「\\」,他的輸出結果就會像旁邊終端機的結果那樣會印出一個全形的\字元。
OK!重點來拉~前面所提到的多行印出會有顏色不同的問題,奇怪?為甚麼在這邊會是清一色的黃色呢?
還記得上面所說的,當你把所有的內容都給於一個變數名稱時,他就會將其視為字串嗎?所以我把它命名為變數fat_cat,在"""裡面的所有內容都會變成字串囉~。
下面是Exercise10的Study Drills。要我們自己運用多種格式化輸出去印出複雜的字串。
上半部的部分都是做變數宣告,我真正印出的只有一行:
puts Profile
而上面這個寫法就是把內容寫上一個標題(My_information),在將整份文件命名為變數Profile印出。
OK! 那今天的進度就到這邊,明天見囉~
程式碼同步分享於Github:https://github.com/peggy110336/ruby_hard_way
By 小K