Ruby 关于 and 关键字

maxchen · November 15, 2018 · Last by IDbbnn345 replied at November 18, 2018 · 1348 hits

今天学习 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?

Reply to BruceDing

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

Reply to maxchen

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

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

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

自动 google ruby 逻辑运算符

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

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

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

You need to Sign in before reply, if you don't have an account, please Sign up first.