- 求職 : 軟件工程師
- 論壇徽章:
- 3
|
Ruby 太過簡潔了
1. 變量賦值
在 while , for 等代碼塊中,賦值并不能保證建立一個新的變量,而且變量名稱也不是局部的。
在代碼塊執(zhí)行完后,變量的值依舊保留。
因為 Ruby 的賦值,會首先檢查它的上層調(diào)用棧中是否存在同名的變量,如果存在,就會對那個
變量進行賦值。除非用:- local_var = 10
- for x in [1,2,3] {
- |local_var|
- local_var = 1
- }
復(fù)制代碼 所以使用 Ruby 的小心了,在代碼塊中,變量的名稱最好不要與全局變量或者什么變量相同,否則就容易出問題。
2, 代碼檢查
哈希賦值的變量會被認為是沒有使用:- key, value = [1,2]
- hash[key] = value
復(fù)制代碼 使用 ruby -w 的方式檢查代碼,會給出一個警告,說 value 定義后,未被使用。
3. 未定義變量會默默的賦值為 nil
如果在代碼中突然出現(xiàn)一個變量名稱在值中,那么ruby 會默默的給他賦值為 nil。所以當你拼錯變量名稱的時候,系統(tǒng)并不會給你提示,即使是用 -w 的形式檢查代碼。 |
|