gpt4 book ai didi

ruby - 方法定义中的额外表达式

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

在这个例子中,方法定义中的最后一个english对我来说似乎是不必要的。我把它拿出来,代码也能正常工作。为什么这本书包括它?有没有我不知道的某种约定?

class Integer
def to_eng
if self == 5
english = 'five'
else
english = 'fifty-eight'
end
english
end
end

# I'd better test on a couple of numbers...
puts 5.to_eng
puts 58.to_eng

最佳答案

在 ruby​​ 中,最后一条语句的结果总是从函数返回。在这种情况下,结果是“english”变量的值。但是,如果我们删除该方法的最后一行,它的行为仍然相同,因为这两行都返回在“english”变量上设置的值。

english = 'five' #=> 'five'
english = 'fifty-eight' #=> 'fifty-eight'

也可以使用三元运算符以更紧凑和优雅的方式编写此方法。

class Integer
def to_eng
self == 5 ? 'five' : 'fifty-eight'
end
end

关于ruby - 方法定义中的额外表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23145064/

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