可能已经问过但我找不到..这里有两种常见的情况(对我而言编程rails ..)在ruby中写的很令人沮丧:
"a string".match(/abc(.+)abc/)[1]
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我得到一个错误,因为字符串不匹配,因此调用[]运算符为零.我想要找到的是一个更好的替代方案:
temp="a string".match(/abc(.+)abc/); temp.nil? ? nil : temp[1]
Run Code Online (Sandbox Code Playgroud)
简而言之,如果它不匹配则只返回nil而没有错误
第二种情况是这样的:
var = something.very.long.and.tedious.to.write
var = something.other if var.nil?
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我想只在不是nil的情况下为var分配一些东西,如果它是零,我将分配something.other ..
有什么建议吗?谢谢!
"a string".match(/abc(.+)abc/).maybe[1]
Run Code Online (Sandbox Code Playgroud)
我不确定我是否理解第二个,你想要这个吗?
var = something.very.long.and.tedious.to.write || something.other
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
407 次 |
| 最近记录: |