扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
在本页阅读全文(共5页)
Ruby 语法开放的结构和符号的包含,使得定义词汇相当容易。可以使用方法、符号和类来形成词汇。请输入 irb
来启动 Ruby 解释器。输入清单 1 中的代码。(清单 1 显示了输入的内容和 Ruby 中的结果。只需要输入黑体的代码。)
|
在清单 1 中,创建了叫作 Person
的类,它有两个实例变量分别叫作 name
和 email
。请特别注意 attr_accessor :name, :email
这一行。有两个概念应当引起注意:
清单 1 中的 attr_accessor :name, :email
语句创建两个属性,分别带有 getter 和 setter 存取器。attr
实际上是个方法调用 —— 是 Ruby 语言本身元编程的精彩示例。Java 开发人员习惯于在类体中看到方法声明,而不习惯看到方法调用。这个方法调用把方法和实例变量添加到 Person
类中。
如果没有 attr_accessor :name, :email
,就必须为每个需要的属性输入清单 2 的代码:
|
清单 2 —— Ruby 版的 getter 和 setter —— 看起来应当有点儿熟悉。name=
实际上是个方法名称,而 @
加在所有实例变量前作为前缀,但剩下的就与 Java 的 getter 和 setter 很类似了。
如果不用清单 2 中的代码,也可以用 @attr
的另一个版本来创建带有 getter、setter 或两者都有的属性。
第二个值得注意的概念是符号。可以把 :email
当成名为 email 的东西。Ruby 符号像字符串,但是是不可修改的字符串,而且只有一个实例。只能使用一个 :email
符号。
现在看起来像下面这样的活动记录代码应当让您有点儿感觉了:
|
has_one
是个方法,:department
是个符号,活动记录只是把它解释成类的名称。因为 Ruby 并不强制要求在方法参数两边使用括号,还因为 Rails 可以使用专门为活动记录设计的符号和方法名称,所以这个词汇畅通无阻。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者