gpt4 book ai didi

ruby - 设置 Ruby 变量(如果尚未定义)

转载 作者:数据小太阳 更新时间:2023-10-29 06:22:44 26 4
gpt4 key购买 nike

在 Ruby 中,如果一个变量还没有被定义,你如何设置一个特定的值,如果它已经被定义了,你如何保留当前值?

最佳答案

虽然 x ||= value 是一种表示“如果 x 包含一个虚假值,包括 nil(在这个构造中隐含的 if x 未定义因为它出现在赋值的左侧),给 x 赋值”,它就是这样做的。

大致等同于以下内容。 (但是,x ||= value 不会像这段代码那样抛出 NameError可能 并且它总是会为 x 赋值 因为这段代码没有——关键是要看到 x ||= value 对 x 中的 任何 假值,包括“默认” nil 值):

if !x
x = value
end

要查看变量是否真的没有被赋值,使用defined?方法:

>> defined? z
=> nil
>> z = nil
=> nil
>> defined? z
=> "local-variable"
>> defined? @z
=> nil
>> @z = nil
=> nil
>> defined? @z
=> "instance-variable"

但是,在几乎所有情况下,使用defined? 是代码异味。注意权力。做明智的事情:在尝试使用变量之前给变量值:)

快乐编码。

关于ruby - 设置 Ruby 变量(如果尚未定义),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6671442/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com