ruby类变量中访问器方法的简写
我想要一些为类变量创建访问器方法的短方法和更少重复的方法。在这里,我看到有太多外观相同的代码,即方法。对于我们的实例变量,有没有像我们这样的捷径@具有属性访问器的foobar:foobarruby类变量中访问器方法的简写,ruby,Ruby,我想要一些为类变量创建访问器方法的短方法和更少重复的方法。在这里,我看到有太多外观相同的代码,即方法。对于我们的实例变量,有没有像我们这样的捷径@具有属性访问器的foobar:foobar 您可以这样做: class User @user_id = 0 @user_long = 0 @user_lat = 0 class << self attr_accessor :user_id, :user_long, :user_lat end end 您可以这
您可以这样做:
class User
@user_id = 0
@user_long = 0
@user_lat = 0
class << self
attr_accessor :user_id, :user_long, :user_lat
end
end
您可以这样做:
class User
@user_id = 0
@user_long = 0
@user_lat = 0
class << self
attr_accessor :user_id, :user_long, :user_lat
end
end
你可能要找的是这样的东西
class User
class << self
attr_accessor :user_id
end
end
这将在类的上创建实例变量,而不是类变量。这可能会满足您的需要,但我建议您阅读并理解Ruby的对象模型 你可能在找这样的东西
class User
class << self
attr_accessor :user_id
end
end
这将在类的上创建实例变量,而不是类变量。这可能会满足您的需要,但我建议您阅读并理解Ruby的对象模型 一般来说,最好使用实例变量而不是类变量,因为类变量的共享语义有些奇怪:
class User
class << self
attr_accessor :user_id, :user_long, :user_lat
end
self.user_id = 0
self.user_long = 0
self.user_lat = 0
end
User.user_id #=> 0
User.user_long #=> 0
User.user_lat #=> 0
User.user_id = 23423423
User.user_long = -342.34
User.user_lat = 343.3
User.user_id #=> 23423423
User.user_long #=> -342.34
User.user_lat #=> 343.3
然而,无论您使用的是类实例变量还是类变量,它看起来都是一种奇怪的设计。既然系统中不能有多个用户,为什么还要有一个类呢?为什么不直接使用一个对象呢
class << (User = Object.new)
attr_accessor :user_id, :user_long, :user_lat
end
User.user_id = 0
User.user_long = 0
User.user_lat = 0
User.user_id #=> 0
User.user_long #=> 0
User.user_lat #=> 0
User.user_id = 23423423
User.user_long = -342.34
User.user_lat = 343.3
User.user_id #=> 23423423
User.user_long #=> -342.34
User.user_lat #=> 343.3
一般来说,最好使用实例变量而不是类变量,因为类变量的共享语义有些奇怪:
class User
class << self
attr_accessor :user_id, :user_long, :user_lat
end
self.user_id = 0
self.user_long = 0
self.user_lat = 0
end
User.user_id #=> 0
User.user_long #=> 0
User.user_lat #=> 0
User.user_id = 23423423
User.user_long = -342.34
User.user_lat = 343.3
User.user_id #=> 23423423
User.user_long #=> -342.34
User.user_lat #=> 343.3
然而,无论您使用的是类实例变量还是类变量,它看起来都是一种奇怪的设计。既然系统中不能有多个用户,为什么还要有一个类呢?为什么不直接使用一个对象呢
class << (User = Object.new)
attr_accessor :user_id, :user_long, :user_lat
end
User.user_id = 0
User.user_long = 0
User.user_lat = 0
User.user_id #=> 0
User.user_long #=> 0
User.user_lat #=> 0
User.user_id = 23423423
User.user_long = -342.34
User.user_lat = 343.3
User.user_id #=> 23423423
User.user_long #=> -342.34
User.user_lat #=> 343.3
@米莎:我知道没有理由写这门课。我有这个疑问,所以我问:“米沙,我知道没有理由写这门课。我有这个疑问,所以我问。@Mischa class@Mischa class