我想知道它的真正含義以及如何正確使用它。什麼「?」在紅寶石意味着什麼?
另一個問題是關於斷言我看到
assert product.valid? product.errors.full_messages
和
assert product.valid?
但我不能找到那些語法斷言什麼是對的assert(product.errors.full_messages)第二ARG指或它是arg的?
感謝
我想知道它的真正含義以及如何正確使用它。什麼「?」在紅寶石意味着什麼?
另一個問題是關於斷言我看到
assert product.valid? product.errors.full_messages
和
assert product.valid?
但我不能找到那些語法斷言什麼是對的assert(product.errors.full_messages)第二ARG指或它是arg的?
感謝
Ruby對方法使用特定的命名約定。它可以讓你快速識別副作用,他們可能有,或返回類型..
這些約定在方法名的末尾使用特殊標記,如「!」和「?」。這是不常見的,因爲大多數編程語言都傾向於禁止標識符中的這些字符,但它確實是方法名稱的一部分。 (且不應與運營商混淆)
請注意,這些只是公約。 絕不一定要跟着它,但是認爲是一個很好的做法。
這只是慣例把它放在一個返回布爾AFAIK的方法。而不是做每一個IsSomething。
這純粹是一種慣例,它沒有形式上的意義。人們很難理解這一點,因爲許多(大多數?)語言不允許諸如?和!在標識符中。
我剛剛得到了關於assert的回答,在每個assert方法中的最後一個參數(可選)指定的消息顯示它什麼時候聲明爲false – sarunw 2009-10-05 10:54:44