Chr*_*yer 4 ruby class accessor
我想在编写器访问器中进行一些检查.我的第一个想法是返回一个布尔值.
class MyClass
def var=(var)
@var = var
# some checking
return true
end
end
m = MyClass.new
retval = (m.var = 'foo')
=> "foo"
Run Code Online (Sandbox Code Playgroud)
我可以在编写器访问器中设置返回值吗?如果是,我怎样才能得到这个值?
我会使用set_var(var)而不是你想要做的事情,假设属性编写器正常工作.你要做的是非标准的,并且对于下一个使用你的代码的穷人来说是不明显的.(它可能就是你自己)如果发送了错误的输入或者发生了异常的事情,我会抛出异常.
你想要这种行为
Correct
>>temp = object.var = 7
=> 7
Wrong
>>temp = object.var = 7
=> false
Run Code Online (Sandbox Code Playgroud)
=运算符应始终返回传递给它的值.Ruby使用隐式返回,这在编程语言中并不常见.使用时仔细检查退货method=()
.
归档时间: |
|
查看次数: |
866 次 |
最近记录: |