ruby中的交替If-Else块
我有一个代码,如果,除非像这样多次阻塞: 选项是hashmapruby中的交替If-Else块,ruby,Ruby,我有一个代码,如果,除非像这样多次阻塞: 选项是hashmap unless functioncall? options[:product] puts "Hello wrold" end 有人能解释一下这个街区的流向吗。我是ruby新手,我使用大括号块来代替它。转换为if语法 在if语法中,这相当于: if functioncall?(options[:product]) else puts "Hello World" end 或 布尔方法的输出 如果选项哈希有一个名为produ
unless functioncall? options[:product]
puts "Hello wrold"
end
有人能解释一下这个街区的流向吗。我是ruby新手,我使用大括号块来代替它。转换为if语法
在if
语法中,这相当于:
if functioncall?(options[:product])
else
puts "Hello World"
end
或
布尔方法的输出
如果选项哈希有一个名为product
的键,则方法functioncall?(选项[:product])
将返回true
方法的输出
根据选项散列的内容,上述方法将生成:
# options = { :key => value, :product => 'stuff'}
functioncall?(options[:product]) #=> true
# the output of your code would be nil
# options = { :key => value, :foo => 'bar'}
functioncall?(options[:product]) #=> false
# the output of your code would be "Hello World"
这与
if
完全一样,但是,反过来说:@SergioTulentsev,我知道,我想知道的是,流是什么样的,这里的条件语句是什么?这里的使用选项[:product]是什么?它是函数调用的参数吗?是的,它是函数调用的参数。像这样读,除非functioncall?(选项[:产品])
哈,好老的“Hello wrold”。实际上,它不是等价的。OP的代码打印的是Hello wrold
,而不是Hello World
。别担心。你没有错。我宁愿要你拥有的,也不要OP拥有的。我投票否决了这个问题,因为它太草率了。
# options = { :key => value, :product => 'stuff'}
functioncall?(options[:product]) #=> true
# the output of your code would be nil
# options = { :key => value, :foo => 'bar'}
functioncall?(options[:product]) #=> false
# the output of your code would be "Hello World"