gpt4 book ai didi

ruby - Ruby 变量前的感叹号

转载 作者:行者123 更新时间:2023-12-05 09:22:19 30 4
gpt4 key购买 nike

通过 ruby​​ monk 时,他们偶尔会从左侧字段中抛出一段语法不熟悉的代码:

 def compute(xyz)
return nil unless xyz
xyz.map {|a,b| !b.nil? ? a + b : a}
end

有人可以解释这三种用途吗?1)宾语前感叹2) 额外的问号 3) lambda 中冒号的使用

最佳答案

! 只是一个非运算符。

b.nil? 是一种检查 b 的值是否为 nil 的方法。返回一个 bool 值。

!b.nil? ? a + b : a 是一个三元运算是action。它是这样工作的:

if_this_is_a_true_value ? then_the_result_is_this : else_it_is_this 

相当于说

if a then b else c end

如果 !b.nil?true 则与上述语句相关,答案为 a+b 否则为 a.

阅读更多 here

关于ruby - Ruby 变量前的感叹号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27882546/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com