gpt4 book ai didi

ruby - 在 Ruby 中创建类的新实例

转载 作者:太空宇宙 更新时间:2023-11-03 17:16:35 26 4
gpt4 key购买 nike

我是编程初学者,写了一个简单的程序:

class Chapter
def initialize
@text
@number
end
end

def new_chapter
tmp_chapter = Chapter.new
tmp_chapter.text = 'Chapter about ..'
tmp_chapter.number = '11'
end

puts new_chapter
puts ObjectSpace.each_object(Chapter) {|x| p x}

但是我得到这个错误:

 test2.rb:10:in `new_chapter': undefined method `text=' for #<Chapter:0x200b830>
(NoMethodError)
from test2.rb:14:in `<main>'

那我做错了什么?我知道还有其他方法可以创建新实例,但我想这样做!谢谢!

最佳答案

你必须这样做:

class Chapter
attr_accessor :text, :number
def initialize
@text
@number
end
end

你可以像下面这样写,不需要def initialize;@text; @数字;结束

class Chapter
attr_accessor :text,:number
end
def new_chapter
tmp_chapter = Chapter.new
tmp_chapter.text = 'Chapter about ..'
tmp_chapter.number = '11'
end

puts new_chapter
puts ObjectSpace.each_object(Chapter) {|x| p x}
# >> 11
# >> #<Chapter:0x9596eac @text="Chapter about ..", @number="11">
# >> 1

关于ruby - 在 Ruby 中创建类的新实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18696819/

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