gpt4 book ai didi

ruby - 如何在不使用 'if' 或 'then' 的情况下在 Ruby 中写入 'end'

转载 作者:数据小太阳 更新时间:2023-10-29 06:51:41 25 4
gpt4 key购买 nike

我发现了三种在 Ruby 中编写相同条件的方法:

#1
if 1==1
puts "true"
end

#2
puts "true" if 1==1

#3
if 1==1 then puts "true" end

为什么我不能这样做?

#4
if 1==1 puts "true"

我不明白:

  1. 为什么在#3 中需要 thenend,并且,
  2. 为什么我需要更改顺序才能使 #2 正常工作。

陈述#4 似乎是最自然的写法。我不明白为什么这是不可能的。

最佳答案

if x then y end”语法用于多行条件语句,而“y if x”语法用于简洁的单行条件语句。 then 在第一种情况下是必要的,它告诉 Ruby 条件已经结束(因为 Ruby 不需要像 C 那样的括号),而 end 是必要的来告诉 Ruby整个 if block 结束(因为它可以是多行)。

您可以用分号替换 then,因为行尾也表示条件结束。您不能用多行 if 去掉 end。如果您想要简洁的单行代码,请使用第二种形式或三元运算符。

例如假设

x = true

以下将评估为真,并返回 y

x ? y :
=> y

同样,这将评估 false 并且不返回任何内容

!x ? y :
=>

在 ':' 之后为 else 情况添加一个术语

!x ? y : z
=> z

关于ruby - 如何在不使用 'if' 或 'then' 的情况下在 Ruby 中写入 'end',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/631174/

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