有沒有關於如何區分.nil?
,.blank?
和.empty?
的指南?何時使用空,空白,空?
我通常總是困惑於何時在我的應用程序中使用它們,因爲它們似乎意味着相同的事物,但具有不同的含義。
有沒有人對血淋淋的細節有任何備忘單?
有沒有關於如何區分.nil?
,.blank?
和.empty?
的指南?何時使用空,空白,空?
我通常總是困惑於何時在我的應用程序中使用它們,因爲它們似乎意味着相同的事物,但具有不同的含義。
有沒有人對血淋淋的細節有任何備忘單?
nil?
- 檢查是否變量被引用的對象或不
empty?
- 可以被用於檢查在各種對象類型,如empty string ""或empty array []
blank?
- 檢查爲nil?
或empty?
。
我找到了一個很好的解釋here:
零?測試對象是否爲 完全爲零,即是否爲 單一且僅需要 NilClass的實例。
空?是一些對象響應的方法 。您需要檢查每個案例的 文檔。例如,對於 示例,並且空數組是 不是零(它是一個數組是否正確?)並且 沒有元素。一個空字符串是 一個不是零(它是一個字符串 吧?)並且沒有字節,沒有任何東西。
空白?你要求的方法不是 屬於Ruby,它是一個Rails 擴展名: http://api.rubyonrails.com/classes/Object.html#M000011。
如果您通過點擊鏈接在那個帖子的最後,你會發現,blank?
方法簡單地結合了nil?
和empty?
方法調用。
'只包含「空白」字符的字符串被視爲空這個有用的表?但不是空的? 「\ n \ t」',因爲[@xhh](http://stackoverflow.com/questions/1654960/when-to-use-nil-blank-empty#comment21296385_1655001)在這個問題的另一個答案中寫道。 – ANeves 2013-09-17 00:07:48
nil?
在所有Objects
定義的,它只能在nil
單返回true
。
blank?
對所有對象定義的太,則返回true
如果對象也響應empty?
並且是空的,或者是一個false
類型值(!object
總是true
)。
empty?
在幾個集合對象上定義,如果它沒有元素,則是true
。它也在String
上定義。
注意blank?
是ActiveSupport
而不是的Rails 1.8。
僅包含「空白」字符的字符串被視爲「空白?」,但不包含「空」? 「\ n \ t」 – xhh 2013-02-28 08:21:06
如果對象的值爲false,則空白也會返回true – riley 2013-03-08 04:19:37
我認爲'nil'的描述不準確,因爲'nil.nil?'是true,但'nil'是'NilClass的對象'。 – 2015-05-06 07:19:36