gpt4 book ai didi

ruby - 从 Ruby 类返回对象

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

我确信我以前用过这个!

我有以下类(class)。标题字符串在类中创建,fname 和 lname 字符串作为参数传入。但是,我似乎无法让 @title 对象返回 nil 以外的任何内容。

我在这里做错了什么?

class Person
attr_accessor :fname, :lname, :title

def initialize(fname, lname)
@fname = fname
@lname = lname
@title = title
end

def string1
@lname + ", " + @fname
end

@title = "Director"

def string2
@title
end

end

p = Person.new("Yukihiro", "Matsumoto")

p p.string1
p p.string2

最佳答案

在您的类的上下文中,@title 指的是类实例变量。在实例方法的上下文中,@title 指的是实例变量。你混淆了这两者。

如果您需要应用某种默认值,那么您需要的是惰性初始化器:

def title
@title ||= "Director"
end

或者更好的是,首先填充它。解决此问题的一种方法是扩充您的初始化方法:

def initialize(fname, lname, title = nil)
@fname = fname
@lname = lname
@title = title || "Director"
end

关于ruby - 从 Ruby 类返回对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14219882/

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