Ruby bits ( 2 ) : Methods and Classes
Hash Argument
每一個不同的欄位就多一個 argument不是個好方法,會造成很多欄位空在那邊。
用 Hash argument 來解決這個問題。
使用方法,因為 hash 是由 key-value 所組成,所以可以把需要的屬性設成 symbol ,也就是:lat
這種樣子。後面指定它的 value,形成 key-value 的形式。
改寫成 1.9 以後的 hash
hash 中的 key 可以省略,只寫出某幾個就可以,就連hash argument 本身都可以省略,。
Exceptions
當 tweets 是空的時候,我希望我會知道這個訊息,這時候 Exception 就派上用場了。
1 |
|
現在我有一個 method 叫做 get_tweets(list),當他發現 user 沒有認證的時候,它就會丟出AuthorizationException這個例外,對應的程式碼是raise AuthorizationException.new
,接下來再用另外一段程式碼,把剛剛上面的程式碼包起來,因為我們接下來要做的是對拋出的例外做一些處理,好讓我們可以藉由 exception 更輕鬆的了解到錯誤出現在哪裡。
1 |
|
12行,先執行我們剛剛建立的method 叫做 get_tweet(my_list),接著 34 行的意思是當發現有認證例外(AuthorizationException)產生時,就會跳出警告"You are not authorized to access this list."
。
延伸閱讀:
Ruby Exceptions
tutorial point ruby exception
ruby exceptions and error handling
Splat Argument
前面有加 * 字號的變數代表傳入的會是 Array,依序傳入為 Array[0]、Array[1]、Array[2]…以此類推。
You Need a Class When …
OverSharing
Reopen Classes
- You can re-open and change any class.
- Beware! You don’t know who relies on the old functionality.
- You should only re-open classes that you yourself own.