我想作一個職業技術作家,可是我太感性,寫不出嚴謹的技術文章,總是喜歡在自己的文章中顯露太多的感情色彩。這個系列文章從名字中就顯露出我最近的感情色彩,不可否認我最近處於痛苦之中,經常暗自流淚。不知道在男人眼淚中的ruby是什麼滋味,想知道嗎?看看我的這個系列文章吧。
一:Hate ? World
記得大部分的文章在介紹語言的時候總是喜歡用Hello World的小程式,那個程式可以最好的展示語言的結構,很是經典,不過我的心情彷彿不太喜歡這個世界,我可能討厭無情的世界,虛偽的世界,或者?的世界。看看下面的代碼:
print('Enter the World name(ex sad)')worldname=gets()puts("Hate the #{worldname} world")
這段代碼的意思是根據提示輸入你最討厭的世界的名字,然後輸出 Hate the ? world。很簡單的一個程式,變通了一下 Hello World。在這個小程式裡面可以講四點:
- print('') 這個是把單引號裡面的字元輸出來。他在輸出字串之後不會換行。
- gets() 擷取輸入的string,賦給其他變數。
- puts('')是把引號裡面的內容輸出來,輸出之後會換行,這個是和print的區別。
- #{}這個裡面的東西會被輸出。我說裡面東西的意思是想說明裡面不一定是個變數,也可以是個運算式或者是個函數。
二:Methods
我們在OOP裡面總是在說對象之間是通過訊息進行交流的。在對象獲得訊息之後想要進行處理,必須幹什麼呢。調用與訊息對應的Methods以響應那個訊息。這裡就引出了我們的Methods了。多說一句在非OOP裡面,或者說是面向過程的編程裡面咱們的Method就成了Function了。在Ruby裡面怎麼定義一個Methods呢,其實和Python看上去差不多,給段代碼大家就完全明白:
def showmyname puts('Jesse Zhao')enddef showyourname(aName) puts("Your name is #{aName}")enddef showourname(aName,bName) puts("My name is #{aName},Your name is #{bName}")end
這段代碼看完之後就能明白了Method的寫法了吧,三個例子分別展示了如何寫不帶參數,帶參數和帶多個參數的Method的寫法。在這裡想說一下在puts還有這個def的Method Name後面的那些括弧是不必要的,我加上括弧是我的習慣,並且個人感覺這樣代碼看起來不會太混亂。
三:Number and Condition:if then
看了《a little book of ruby》裡面的一個例子很不錯,寫的很好。給出來看看,感覺對Ruby裡面的對象可以加深認識吧。
taxrate=0.175print("Enter price:")s=gets()subtotal=s.to_fif(subtotal<0.0) then subtotal=0.0endtax=subtotax*taxrateputs "Tax on $#{subtotal} is $#{tax},so grand total is $#{subtotal*tax}"
講解一下:
- taxrate這個變數沒有定義就直接使用,因為ruby允許在需要時建立變數,ruby可以自己感知變數的類型。
- s.to_f。因為ruby是完全OO的東西,所以從string,integer都是類型,都是方法的。這個to_f方法就是string類型的s的方法,他可以把sting轉換成float類型。
- if then end這個就沒有必要解釋了吧,大家有些編程經驗的應該都看得懂。
- string轉換成float如果string為數字格式則可以直接轉換成float,如果不是數字格式而是其他如"Hate world"轉換成float會編程0.0。
四:後續
今天就講到這裡吧,明天開講Class。寶寶,我依然愛你。請給我再給我一次機會。