gpt4 book ai didi

ruby - 为什么在 Ruby 中返回 "self"

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

我在这里学习这个 Ruby 教程,它讨论的是堆栈和队列 http://rubymonk.com/learning/books/4-ruby-primer-ascent/chapters/33-advanced-arrays/lessons/86-stacks-and-queues#solution4117

它给出了堆栈的以下代码

class Stack
def initialize
@store = Array.new
end

def pop
@store.pop
end

def push(element)
@store.push(element)
self
end

def size
@store.size
end
end

我的问题是:为什么在“push”方法中必须返回“self”,而在pop方法中却不必返回self?这里有什么区别?

谢谢!

最佳答案

Array#pushArray#pop返回不同的东西。第一个返回修改后的数组,而第二个返回弹出的元素。

您可能不想返回修改后的数组的原因是它破坏了封装并暴露了对象的内部状态。尽管如此,我们仍想链接我们的推送调用(即 Stack.new.push(2).push(5)),因此我们返回自身(Stack 类型)而不是零或其他东西。

关于ruby - 为什么在 Ruby 中返回 "self",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16206130/

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