怎么让你对象跟Array或者Hash一样,可以使用[ ]操作符来获取属性值或者赋值? 问题其实就是如何定义index操作符,在Ruby中可以这样做:

class Message
   def initialize
    @props=Hash.new
   end
   def [](key)
      @props[key]
   end
   
   def []=(key,value)
      @props[key]=value
   end 
end

m=Message.new

m[0]=1
p m[0]

m[:a]="hello"
p m[:a]

文章转自庄周梦蝶  ,原文发布时间2010-02-01

Ruby Tip:定义索引操作符相关推荐

  1. 用Javascript为DropDownList添加一个Item至定义索引位置

    用Javascript为DropDownList控件下拉式选择添加一个Item至定义索引位置. 准备数据,创建一个对象,将是存储DropDownList控件每个Item数据. View Code Im ...

  2. java类中定义索引器,C#面向对象基础——字段、属性和索引器

    关于面向对象编程,在很多语言里面都出现过,最常用的如java和c++, C#语言关于面向对象编程的规范,我觉得介于上面两者之间,我的理解是它比较偏向c++,或许是因为跟它的析构函数有关系,像java有 ...

  3. php怎么定义索引,PHP未定义的索引/变量

    我使用以下代码得到以下错误: 注意:未定义的变量:第35行的C:\ xampp \ htdocs \ test \ projects \ Learning \ php \ Databases \ Fo ...

  4. 【汇编语言与计算机系统结构笔记12】序格式与伪操作:简化段的定义、操作符等

    本次笔记内容: 15.程序格式与伪操作-2 16.上机过程-1(前15分钟) 注:我找到了对应内容的课件,请见我于GitHub的CS笔记仓库.因此,为了节省时间,我只记录老师上课强调的内容与对应ppt ...

  5. 注意,ruby循环体定义的变量在结束时后,变量还存在

    a = [1, 2, 3]for i in ab = 123p i end p "b:#{b}" p i <ruby语言编程> 129页 倒数 第8行 转载于:http ...

  6. python raise valueerror_raise ValueError('无法设置没有定义索引的帧'ValueError:

    我的代码出现以下错误File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\core\frame.py", line 251 ...

  7. pycharm怎么查看代码结构,看函数定义、变量定义、类定义索引、目录?(左方structure)

    我真的是眼瞎.,,找了半天没找着,原来在这

  8. 3.1 《数据库系统概论》SQL概述及数据定义(模式SCHEMA、表TABLE、索引INDEX)

    文章目录 0.前言 1.思维导图 2.SQL概述 (1)什么是SQL? (2)SQL的特点 (3) SQL的基本概念 3.数据字典 4.数据定义 (1)数据定义概览 (2)模式的定义与删除---SCH ...

  9. 笔记:SQL概述及数据定义(模式SCHEMA、表TABLE、索引INDEX)

    SQL概述及数据定义(模式SCHEMA.表TABLE.索引INDEX)的学习笔记.修改与补充 目录 0.前言 1.思维导图 2.SQL概述 (1)什么是SQL? (2)SQL的特点 (3) SQL的基 ...

  10. 关系数据库标准语言SQL(SQL概述、数据定义、创建数据库,索引等)

    关系数据库语言SQL 一.SQL概述 SQL(Structured Query Language)结构化查询语言,是关系数据库的标准语言 SQL是一个通用的.功能极强的关系数据库语言. 1 .SQL ...

最新文章

  1. Nginx的upstream目前支持5种分配方式
  2. Delphi - 对象构造浅析后续
  3. Android 自己定义View须要重写ondraw()等方法
  4. 机器学习之梯度下降法(GD)和坐标轴下降法(CD)
  5. flink中akka的使用 以jobClient提交任务为例子
  6. Qt4_在表中显示数据
  7. ABAP内表数据和JSON格式互转
  8. tensorflow精进之路(十七)——python3网络爬虫(上)
  9. 使用OpenCV4Android打开相机
  10. linux opendir路径_opendir与readdir函数使用示例(获得指定目录下所有文件名
  11. bzoj4173:数学
  12. ARM920T的MMU与Cache ——转载
  13. java 加背景颜色_Java 给PPT幻灯片添加背景颜色和背景图片
  14. Unity 2D打地鼠小游戏
  15. 网易云音乐 linux x32,网易云音乐 Win10 UWP 正式变为 Win32 转制版
  16. av_dump_format函数使用说明
  17. 网络对抗技术_实验四_恶意代码技术
  18. 大猫老师小课堂搜索引擎专题:ElasticSearch 的使用方法
  19. 关于.net中文件上传的程序
  20. gameboy模拟器开发_CoreBoy是使用C#编写的跨平台GameBoy模拟器,甚至可以执行ASCII

热门文章

  1. 如何将java项目部署到Linux服务器上
  2. python如何获得列表中某个元素的index
  3. 计算机专业c类大学,【计算机应用技术】专业排名A+、A、B+、B、C类院校分数线...
  4. 微型计算机主要特点,微型计算机数字控制的主要特点.ppt
  5. python rarfile_Python中zipfile压缩文件模块的基本使用教程
  6. java执行update的方法_解决Hibernate4执行save()或update()无效问题的方法
  7. Python 三种过滤去重方法
  8. CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)概念区分理解
  9. 高科技应用之人脸识别、,
  10. Kubernetes 编排系统