1. attr_accessor的用法相当简单, 就相当于getter和setter,看一个类就知道怎样用了:
class Test
attr_accessor :name
def initialize()
@name = "yanzilee9292"
end
end
#test
puts Test.new.name
保存这个类为test.rb文件, 通过命令行运行 ruby test.rb, 会得到以下结果:
yanzilee9292
2. 如果我们把attr_accessor去掉, 该怎么输出name的值呢
class Test
def initialize()
@name ="yanzilee9292"
end
#test
puts Test.new.instance_eval {@name}
end
可以看到, 用attr_accessor会把事情变得更加简单
3. cattr_accessor和attr_accessor的区别
cattr_accessor就相当于java的类静态变量, 对所有的类实例共享
class Counter
cattr_accessor :class_count
attr_accessor :instance_count
end
counter1 = Counter.new
counter1.instance_count = 1
counter1.class_count = 1
counter2 = Counter.new
p counter2.instance_count
#> nil
p counter2.class_count
#> 1
分享到:
相关推荐
#weak_attr_accessor 用于 用法 做这个: class MainView < UIView weak_attr_accessor :view_controller end 而不是这个: class MainView < UIView def view_controller @view_controller end def...
'scoped_attr_accessor' 然后执行: $ bundle 或者自己安装: $ gem install scoped_attr_accessor 用法 您可以通过直接在您的类中扩展ScopedAttrAccessor来将范围访问器添加到单个类(及其子类): require 'scoped...
attr_typecastable attr_accessor 具有类型转换功能。要求Ruby 2.0 或更高版本安装将此行添加到应用程序的 Gemfile 中: gem 'attr_typecastable' 然后执行: $ bundle或者自己安装: $ gem install attr_...
请参阅attr_encrypted 生成透明地加密和解密属性的attr_accessors。 它可以与ANY类一起使用,但是,将其与ActiveRecord , DataMapper或Sequel结合使用时,您会获得一些额外的功能。安装将attr_encrypted添加到您的...
attr_accessor :send_email def initialize @send_email = true end def send_email? send_email end end 该类定义了一个Configuration对象,其中包含应用程序是否应该发送电子邮件的设置。 send_email设置...
提供像attr_private和attr_value这样的底层方法,可以很好地补充Ruby的内置attr_accessor , attr_reader和attr_writer 。 像pattr_initialize (或attr_private_initialize )和method_object这样的更高级别的...
attr_extras, 使用attr_initialize之类的方法从 ruby 中取出一些样板 attr_extras从 ruby 中提取一些样板,降低了提取小型聚焦类的障碍,而不考虑使用 Struct 函数的缺点。代替class InvoiceBuilder def initialize...
西斯sith是Ruby的宏预处理器 仍然是原型。...* labels ) attr_reader ~ { labels } attr_writer ~ { labels }end Ruby文件 class A attr_accessor a, zendsith ruby_file.rb macro_definitions.rb > output
使用define_method创建Ruby 内置attr_accessor方法的布尔版本。代码片段: 使用define_method attr_accessor方法 def self . attr_accessor? ( attr ) read_method = " #{ attr } ?" write_method = " #{ attr } =...
实例它是什么? Instance 是一种方便且安全的API,用于访问和操作对象的状态。它是如何工作的... class Song attr_accessor :title attr_accessor :artist attr_accessor :year def initialize ( title , artist
gem 的主要思想是将所有对象验证逻辑与对象本身分离用法假设您有以下类,并且您想验证此类的对象 class Contact attr_accessor :first_name , :last_name , :position , :age , :type , :email , :color , :status ...
attr_copy: copy an attribute list, returning the size in bytes.
attr_1%3a2.4.48-4_mips64el
您可以将它们视为attr_protected和attr_accessible的控制器类似物。 安装 Rails的2.3.x版本 gem install param_protected -v "~> 1.0.0" Rails的3.0.x中 gem "param_protected" , "~> 2.0.0" 感谢提供了Rails 3...
android混淆工具Proguard,其中调整ATTR_StackMapTable值为dummy后重新编译打包。版本为5.3.3
gem的最新版本仅适用于Rails 3.2.x 这是一个ActiveModel插件,可以在attr_accessible类方法中定义块。 不支持attr_protected 。 由于块的原因,可以为实例定义访问权限,而不仅仅是为类级别定义。 仍然可以定义类...
组件attr_accessor 该组件模仿 Ruby 的“attr_accessor”方法。 定义 getter 和 setter 方法的简单实现。SQL对象SQLObject 类与数据库交互。 此类将实现以下“ActiveRecord::Base”方法: '::all':返回数据库中所有...
资源来自pypi官网。 资源全名:attr_property-0.0.5-py3-none-any.whl