gpt4 book ai didi

ruby - 为什么 irb 在 setter 方法的情况下回显赋值的右侧而不是返回值?

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

令人惊讶的是,在所有其他情况下,irb 都会回显方法的返回值。为什么通过 setter 进行的赋值行为不同?

我正在使用 Ruby 2.2.2。

irb(main):001:0> def x=(value); puts "puts_from_x"; "returned_string_from_x"; end
=> nil

irb(main):002:0> self.x = 3
puts_from_x
=> 3

更新

我突然意识到它与 rhs 相呼应,因为那是实际返回值。这是为什么?

最佳答案

在此 thread 中@Matz 回复之后:

Setters always return the value they were originally assigned It's a design choice. We defined the value of the assignment as the value of the right hand expression, not the return value from the assigning method.

关于ruby - 为什么 irb 在 setter 方法的情况下回显赋值的右侧而不是返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30382543/

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