Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ruby中的交替If-Else块_Ruby - Fatal编程技术网

ruby中的交替If-Else块

ruby中的交替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

我有一个代码,如果,除非像这样多次阻塞:

选项是hashmap

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"