我写了很多 initialize
代码,将 attrs 设置为参数,类似于:
class SiteClient
attr_reader :login, :password, :domain
def initialize(login, password, domain='somedefaultsite.com')
@login = login
@password = password
@domain = domain
end
end
有没有更像 Ruby 的方式来做到这一点?我觉得我在一遍又一遍地编写相同的样板设置代码。
最佳答案
您可以使用 ruby Struct
:
class MyClass < Struct.new(:login, :password, :domain)
end
或者您可以为此尝试一些 gems,即 Virtus :
class MyClass
include Virtus.model
attribute :login, String
attribute :password, String
attribute :domain, String
end
然后(在这两种情况下):
MyClass.new(login: 'a', password: 'b', domain: 'c')
关于ruby - 有没有一种 Ruby 方法可以删除初始化程序中的样板代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28287564/