這個問題在這里已經有了答案: 如何在 Ruby 中使用條件運算子 (? :)? (7 個回答) 3 小時前關閉。
我只是想知道當 to_s 用冒號應用于物件時會發生什么?它應該將單個字母字串轉換為紙牌游戲的符號。有人可以解釋一下這是否正確嗎?謝謝!下面是一個例子:
def to_s
revealed? ? value.to_s : " "
end
uj5u.com熱心網友回復:
你指的是三元運算子嗎?
它與以下內容相同:
if revealed?
value.to_s
else
" "
end
uj5u.com熱心網友回復:
這是三元運算子。
condition ? expression-to-evaluate-if-true : expression-to-evaluate-if-false
你的例子相當于:
def to_s
if revealed?
value.to_s
else
" "
end
end
換句話說,該? :構造與 沒有特別的關系to_s。
uj5u.com熱心網友回復:
to_s 會將您呼叫的任何內容轉換為字串。
[1, 2, 3].to_s # => "[1, 2, 3]"
{ :foo => :bar }.to_s # => "{:foo=>:bar}"
{ :foo => :bar }.to_a # => [[:foo, :bar]]
Object.to_s # => "Object"
Object.new.to_s # => "#<Object:0x00007f8e6d053a90>"
這是一個您可能會發現有用的博客。
https://blog.appsignal.com/2018/09/25/explicitly-casting-vs-implicitly-coercing-types-in-ruby.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/354624.html
標籤:红宝石
