gpt4 book ai didi

ruby - 此 Ruby 代码片段中 "self"的用途

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

当我在 RubyMonk 的在线练习“Ruby Primer : Ascent, 3.2 Stacks and Queues”中创建 Stack 类时,我发现我不太理解 self 的用途函数 push

class Stack
def initialize(size)
@size = size
@stack = Array.new(@size)
@top = -1
end

def pop
if empty?
return nil
else
result = @stack[@top]
@stack[@top] = nil
@top -= 1
return result
end
end

def push(element)
if full? || element.nil?
return nil
else
@top += 1
@stack[@top] = element
self
end
end

def size
@size
end

def look
@stack[@top]
end

private

def full?
@top == @size - 1
end

def empty?
@top == -1
end
end

最佳答案

它返回类 Stack 本身的对象,因此您可以像这样链接方法调用:

my_stack.push(1).push(2).push(3).size
#=> 3

每次调用 push() 都会生成原始的 my_stack,因此您可以继续调用 push()

关于ruby - 此 Ruby 代码片段中 "self"的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23328143/

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