当我运行以下代码时:
if
puts "A"
elsif
puts "B"
end
Run Code Online (Sandbox Code Playgroud)
我得到输出:
A
B
Run Code Online (Sandbox Code Playgroud)
为什么不警告或提出任何错误?为什么它会执行两个分支?
Ser*_*sev 19
没有条件的if-elsif
这是你错了.这puts 是条件.该片段中没有实体,只有条件.
这是您的代码,格式正确.
if puts "A"
elsif puts "B"
end
Run Code Online (Sandbox Code Playgroud)
为什么它执行两个分支?
puts返回nil,一个假值.这就是它尝试两个分支的原因.如果这个代码有else,它也会被执行.