OK9*_*999 2 ruby ruby-on-rails
下面的行检查和执行什么?
prefix = root_dir.nil? ? nil : File.join(root_dir, '/')
Run Code Online (Sandbox Code Playgroud)
这是包含代码行的块.
def some_name(root_dir = nil, environment = 'stage', branch)
prefix = root_dir.nil? ? nil : File.join(root_dir, '/')
.
.
.
Run Code Online (Sandbox Code Playgroud)
我知道'?' 在红宝石中是检查是/否履行的东西.但我对上面的代码块中的用法/语法不是很清楚.
小智 6
最终的功能?Ruby中的函数只返回一个布尔值,即true或false.
当您编写只能返回true或false的函数时,您应该使用问号结束函数名称.
您给出的示例显示了一个三元语句,它是一行if语句..nil?是一个布尔函数,如果值为n则返回true,否则返回false.它首先检查函数是否为true或false.然后执行if/else来赋值(如果.nil?函数返回true,则它将nil作为值,否则它将获得File.join(root_dir, '/')as值.
它可以像这样重写:
if root_dir.nil?
prefix = nil
else
prefix = File.join(root_dir, '/')
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1182 次 |
| 最近记录: |