ruby存取器的概念

什么是一个存取器?

我们在前面已经讨论过实变量了,但却未过多的讨论.一个对象的实变量属于它的属性,也是它与其它来自同一个类的对象的一般区别.读写它的属性是重要的;这样做需要做一个叫着属性存取器(attribute accessors)的方法.我们将很快看到我们并不是总要明确地写出存取器方法,但现在先让我们了解所有的细节.存取器的两种类型是写(writer)和读(reader).

ruby> class Fruit
| def set_kind(k) # a writer
| @kind = k
| end
| def get_kind # a reader
| @kind
| end
| end
nil
ruby> f1 = Fruit.new
#<Fruit:0xfd7e7c8c>
ruby> f1.set_kind("peach") # use the writer
"peach"
ruby> f1.get_kind # use the reader
"peach"
ruby> f1 # inspect the object
#<Fruit:0xfd7e7c8c @kind="peach">

足够简单;我们可以存取关于我们搜索的水果种类的信息.但我们的方法名还有点儿牢骚.下面的这个更简洁,也更方便.

ruby> class Fruit
| def kind=(k)
| @kind = k
| end
| def kind
| @kind
| end
| end
nil
ruby> f2 = Fruit.new
#<Fruit:0xfd7e7c8c>
ruby> f2.kind = "banana"
"banana"
ruby> f2.kind
"banana"

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索方法
, ruby
, 属性
, end
, reader
, 存取器
, 存取
对象存取器属性
ruby 类存取器、随机存取存储器、静态随机存取存储器、动态随机存取存储器、存取周期最短的存储器,以便于您获取更多的相关知识。

时间: 2024-10-17 01:31:43

ruby存取器的概念的相关文章

ruby 存取器 概念_ruby专题

 什么是一个存取器? 我们在前面已经讨论过实变量了,但却未过多的讨论.一个对象的实变量属于它的属性,也是它与其它来自同一个类的对象的一般区别.读写它的属性是重要的;这样做需要做一个叫着属性存取器(attribute accessors)的方法.我们将很快看到我们并不是总要明确地写出存取器方法,但现在先让我们了解所有的细节.存取器的两种类型是写(writer)和读(reader). ruby> class Fruit     |   def set_kind(k)  # a writer     

.NET相关问题: 事件存取器

问:C# 使得在类上创建事件变得更为简单,只需将关键字"event"添加到委托成员变量 声明中即可.但是,它也允许使用类似属性的语法,可以显式地实现事件的 add 存取器和 remove 存取 器. 这样做的原因是什么?我只是重新创建 C# 编译器为我生成的同一代码,始终这样做不可以吗? 问:C# 使得在类上创建事件变得更为简单,只需将关键字"event"添加到委托成员 变量声明中即可.但是,它也允许使用类似属性的语法,可以显式地实现事件的 add 存取器和 rem

《WCF技术内幕》37:第2部分_第7章_通道管理器:概述和通道管理器的概念

概述 用户代码不能直接创建通道:这些工作由特定的工厂类型完成.虽然这些工 厂对象不是通道,但是通常它们也被认为是通道层的一部分.在第6章"通道" 里,我引入了设计模式[老徐备注](Erich Gamma等, Addison- Wesley, 1995)的概念,并把这种特殊的类型的称为通道工厂.在Windows Communication Foundation (WCF)的类型系统中,通道工厂有特殊的名字,这些 名称与发送者和接收者的命名不同.在接收端,这些类型被称作通道侦听器 (cha

Ruby中的方法概念

  这篇文章主要介绍了详解Ruby中的方法概念,包括方法的自定义和返回值等基础知识,需要的朋友可以参考下 Ruby方法跟其他编程语言中的函数非常相似, Ruby方法用于捆绑到一个单元中的一个或多个重复的语句. 方法名称应以小写字母开始.如果一个方法的名称以大写字母开始,Ruby可能会认为这是一个常数,因此可以正确解析调用. 方法应该定义Ruby的之前调用他们,否则会引发一个异常未定义的方法调用. 语法: ? 1 2 3 def method_name [( [arg [= default]]..

详解Ruby中范围的概念

  这篇文章主要介绍了详解Ruby中范围的概念,需要的朋友可以参考下 范围无处不在:1月至12月,0至9日,50至67行,依此类推. Ruby支持范围,并允许我们使用多种方式的范围: 作为序列范围 作为条件范围 作为区间范围 作为序列范围: 首先,也许是最自然的使用范围来表达序列.序列有一个起点,一个终点和序列中的连续值的方法来生产. Ruby创建'' ..''和'' ...''范围内运算符使用这些序列.这两个点的形式建立一个包容性的范围,而三个点的形式创建了一个范围,不包括指定的高值. ? 1

Ruby中的block概念的理解

  Ruby中的block概念的理解:          文中给出了Javascript代码块与Ruby代码块的对比,需要的朋友可以参考下 Ruby 里的 block一般翻译成代码块,block 刚开始看上去有点奇怪,因为很多语言里面没有这样的东西.事实上它还不错. First-class function and Higher-order function First-class function 和 Higher-order function 是函数式编程语言里面的概念,听起来好像很高端的样

ECMAScript5中的对象存取器属性:getter和setter介绍_javascript技巧

显然这是一个无关IE(高级IE除外)的话题,尽管如此,有兴趣的同学还是一起来认识一下ECMAScript5标准中getter和setter的实现.在一个对象中,操作其中的属性或方法,通常运用最多的就是读(引用)和写了,譬如说o.get,这就是一个读的操作,而o.set = 1则是一个写的操作.事实上在除ie外最新主流浏览器的实现中,任何一个对象的键值都可以被getter和setter方法所取代,这被称之为"存取器属性". 毫无疑问,getter负责查询值,它不带任何参数,setter则

laravel学习教程之存取器_php基础

前言 Laravel是一个简单优雅的PHP Web开发框架,可以将开发者从意大利面条式的代码中解放出来,通过简单.高雅.表达式语法开发出很棒的Web应用,那下面跟着小编一起来学习laravel中的存取器吧. Eloquent: 存取器简介 访问器和存储器允许你在获取或者设置 Eloquent 模型属性值时对其进行格式化操作.比如,你可能希望当一个值存储进数据库之前先对其进行 Laravel encrypter 进行加密操作,并且可以在你通过模型访问的时候自动的进行该属性的解密. 除了可自定义的的

详解Ruby中范围的概念_ruby专题

 范围无处不在:1月至12月,0至9日,50至67行,依此类推. Ruby支持范围,并允许我们使用多种方式的范围:     作为序列范围     作为条件范围     作为区间范围 作为序列范围: 首先,也许是最自然的使用范围来表达序列.序列有一个起点,一个终点和序列中的连续值的方法来生产. Ruby创建'' ..''和'' ...''范围内运算符使用这些序列.这两个点的形式建立一个包容性的范围,而三个点的形式创建了一个范围,不包括指定的高值. (1..5) #==> 1, 2, 3, 4, 5