红宝石可以不归还吗?
仅用于教育目的
例如:
myarray = [1,2,3]
myarray << some_method
def some_method
if Date.today.day > 15
return "Trololo"
else
return __NOTHING__
end
end
Run Code Online (Sandbox Code Playgroud)
因此,如果今天是3月11日myarray将不会添加新项目.我不想nil- 因为nil不是没有:)
我明白了,我可以使用if | unless的语句像myarray << some_method if some_method等.我想了解我能回报什么的红宝石或每次我回来的东西(至少我可以得到的是无对象)
你不能用Ruby回归真正的东西.一切都是对象.但你可以创造一个假的无所事事.看到:
Nothing = Module.new # Same as module Nothing; end
class Array
alias old_op_append <<
def <<(other)
if other == Nothing
self
else
old_op_append(other)
end
end
end
Run Code Online (Sandbox Code Playgroud)
这很丑,但适用于您的样本.(没有什么是对象.)
| 归档时间: |
|
| 查看次数: |
9264 次 |
| 最近记录: |