if语句不会被执行,但却可以从外部访问在if内部定义的b变量,它默认就是nil。
猜测可能是因为ruby的if, unless没有块作用域,虽然没有执行,但解释器依然扫过了这段代码。所以给它设置了nil
a = 3 if a > 3 puts "进入" b = 4 end puts "输出b" p b