Ruby 关于 and 关键字

maxchen · 2018年11月15日 · 最后由 IDbbnn345 回复于 2018年11月18日 · 1347 次阅读

今天学习 Set 代码,看到其中::new 这么写

def initialize(enum = nil, &block) # :yields: o
  @hash ||= Hash.new(false)

  enum.nil? and return

  if block
    do_with_enum(enum) { |o| add(block[o]) }
  else
    merge(enum)
  end
end

关于其中的

enum.nil? and return

之前没见过,是个语法糖吗?有相关的资料看看嘛?

不是语法糖 很好理解呀 and 之前的条件成立 才有必要判断后面 等同于 return if enum.nil?

BruceDing 回复

哪里有讲到 return if enum.nil? 呢

maxchen 回复

return 就是退出这个函数的意思了

a and b 这就是最普通的条件语句啊。

先执行 a,如果 a 是 true,再执行 b,很难理解么。

自动 google ruby 逻辑运算符

就是普通的逻辑运算,常用于短路操作。几乎等价于&&,但优先级更低。

官方文档大概都会有解释。

用 Google 搜 ruby language keyword 搜出来的第一个结果刚好是官方文档的 keywords 页面,点进去可以找到 and

需要 登录 后方可回复, 如果你还没有账号请 注册新账号