当我们在if语句末尾加then时,这两个Ruby if语句之间有什么区别?

if(val == "hi") then
  something.meth("hello")
else
  something.meth("right")
end

if(val == "hi")
  something.meth("hello")
else
  something.meth("right")
end

推荐答案

then是一个分隔符,用于帮助Ruby识别条件和表达式的真实部分.

if条件then正确部分else错误部分end

then是可选的unless如果你想在一行中写出if表达式.对于跨越多行的if-else端点,换行符充当分隔符,将条件与真实部分分开

# can't use newline as delimiter, need keywords
puts if (val == 1) then '1' else 'Not 1' end

# can use newline as delimiter
puts if (val == 1)
  '1'
else
  'Not 1'
end

Ruby相关问答推荐

类似于模块的 attr_accessor 和 attr_reader 的东西?

警告 Selenium [弃用] Manager#logs 已弃用.使用 Chrome::Driver#logs 代替

VS Code Prettier 打破哈希访问

如何判断一个对象在 Ruby 中是否可迭代?

Python 是否在 Ruby 中进行类似于字符串 #{var}的变量插值?

比较ruby中的两个字符串

在包含任意数量的嵌套散列和数组的散列中查找键/值对

RSpec:如何测试文件操作和文件内容

我如何需要特定版本的 ruby​​ gem?

如何自定义 Jekyll 的 url?

获取Ruby中数组的差异

我应该在我的 ruby​​ 脚本中定义一个 main 方法吗?

如何在 Ruby 中创建私有类常量

在 Ruby 中将散列扁平化为字符串

确定一个值是否存在于哈希数组中

测试变量是否等于两个值之一

了解 ruby​​-prof 输出

Ruby 中的超级关键字

错误数量的参数(1 代表 0)在 Ruby 中是什么意思?

if语句末尾带有then有什么区别?