`
fyting
  • 浏览: 217120 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Ruby语法中setter的实现

阅读更多
粗略翻了下Ruby的介绍,晕,Ruby里setter居然是这样搞出来的:
class User
  def name=(myname)
    @name = myname
  end
end

user1 = User.new("aaa")

调用时这样:
user1.name='test1'

看上去很直观吧,比Java里的user1.setName("test")简洁多了,很像C#的Property。实质上呢,这里只有普通的Ruby语法,仅仅用到了几种“魔术”:
Ruby的方法命名可以用问号,感叹号,等号结尾(?,!,=),所以这里调用的是"name="这样一个方法
Ruby调用方法可以不带括号,也就是说,下面两句是等同的:
user1.name= ('test1')
user1.name= 'test1'

至于
user1.name = 'test1'

为什么也可以使用(等号前多了个空格),还是没有搞明白。
分享到:
评论

相关推荐

    Ruby 方法、类

    在Ruby中,方法和类是构建程序的基本元素,它们是实现代码重用和组织的关键概念。 ### 方法(Methods) 方法在Ruby中是可重复使用的代码块,它们接受参数,执行特定任务,并可能返回值。方法定义使用`def`关键字...

    Ruby 语言 Ruby 是一种动态、面向对象的脚本语言,具有简洁而富有表现力的语法 以下是 Ruby 语言的一些特点: 简单

    在 Ruby 中,“一切皆为对象”,包括基本的数据类型如整数、字符串等。这种设计使得 Ruby 能够很好地支持类、对象、继承、多态等面向对象的核心概念和技术,有助于构建复杂的软件系统。 #### 四、元编程能力 元...

    ruby 中文教程,张开川写的

    在Ruby中,你可以使用`require`关键字来引入其他文件,`class`定义新的类,`def`定义方法,`attr_accessor`快速创建属性的getter和setter,`if`、`unless`进行条件判断,`while`、`until`、`for`进行循环,`begin`、...

    《Ruby元编程》PDF版本下载.txt

    - **简洁性**:Ruby的语法设计鼓励简洁明了的代码风格,这为元编程的应用创造了良好的环境。 ### 二、元编程在Ruby中的应用 #### 2.1 动态构建代码 在Ruby中,可以通过`eval`函数来执行字符串形式的代码,这种方式...

    教程资源ruby

    初学者可以通过命令行直接运行简单的 Ruby 代码,例如 `% ruby -e 'print "hello world\n"'`,或在文件中编写代码并使用 `ruby filename.rb` 执行。 【基础概念】 - **解释性脚本语言**:Ruby 不需要编译,可以...

    Ruby最简单的初级教程

    4. 包装器方法:Ruby提供`attr_accessor`, `attr_reader`, `attr_writer`快捷方式来生成getter和setter方法。 四、Ruby的块、迭代器与闭包 1. 块:Ruby中的块是一段代码,可以通过`do..end`或`{..}`定义,常用于...

    RUBY入门教程,新手人们

    Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。本教程专为初学者设计,旨在帮助新手快速掌握Ruby的基础知识,并通过实例进行实践,让学习更加生动有趣。 在Ruby中,...

    Ruby语言相关项目的示例

    Ruby是一种面向对象的、动态类型的编程语言,以其简洁、优雅的语法和强大的元编程能力而闻名。本项目示例旨在帮助你深入理解Ruby语言的核心概念和实际应用。通过以下文件"Ruby语言相关项目的示例.pdf",我们可以探索...

    Ruby程序设计.doc

    - **语法风格:** Python的语法更加强调空白和缩进的重要性,而Ruby则更加自由灵活。 - **面向对象:** Ruby更加强调面向对象的编程思想,几乎所有东西都是对象;而Python虽然也是面向对象的,但在实际应用中更多地...

    Ruby语言教程&案例&相关项目资源.docx

    在Ruby中,属性通常通过访问器方法(getter和setter方法)进行访问和修改。方法是对象的行为或操作,用于执行特定的任务或功能,在类中定义并通过对象进行调用。 - **继承、多态与封装**:支持面向对象编程的三大...

    Ruby Source Code

    通过学习和分析“Ruby Source Code”中的示例,你将能够掌握Ruby的语法特性,理解其编程思想,并能运用到实际项目中,提升你的编程技能。同时,也可以结合官方文档和其他教程资源,进行更深入的学习和实践。

    ruby-oo-fundamentals-attribute-accessors-lab-wdc01-seng-ft-06012

    3. **自动属性访问器(Automatic Attribute Accessors)**: Ruby提供了一个简化的语法来快速生成getter和setter,即`attr_accessor`。在类定义中,一行`attr_accessor :name`会自动生成`name`和`name=`方法,从而...

    ruby培训资料

    例如,在类的声明中,attr_accessor宏可以为类的实例变量提供getter和setter方法。代码示例中的Person类展示了如何定义一个类,如何初始化对象,以及如何在运行时扩展类的行为。 当与Java和C++进行比较时,Ruby具有...

    Ruby入门教程:只需20分钟,你将了解到ruby语言的基础知识

    - 使用`#{}`语法将变量或表达式嵌入到字符串中。 - 示例: `"hello #{name}"` - **字符串方法**: - 如`capitalize`用于确保字符串首字母大写。 #### 七、类与对象 - **定义类**: - 使用`class`关键字定义类。 ...

    ruby基础知识

    - **简洁明了**:Ruby的语法非常简洁,易于理解和学习。 - **面向对象**:Ruby几乎所有的元素都是对象,并且支持多态性和继承。 - **动态性**:Ruby是一种动态类型语言,可以在运行时修改类和对象的行为。 - **元...

    Ruby入门培训ppt/pdf及代码

    4. **函数与方法**:Ruby中的函数被称为方法,可以定义在任何对象上。`def`关键字用于定义方法,`end`用于结束。 5. **类与对象**:Ruby是纯面向对象的语言,一切皆为对象。通过`class`定义类,`new`创建对象,`...

    groovy基础语法.pdf

    Groovy是一种基于Java虚拟机(JVM)的敏捷开发语言,它融合了Python、Ruby和Smalltalk等语言的特性。Groovy语言能够与Java无缝集成,并且支持动态语言特性,包括动态类型、闭包和元编程等。Groovy的语法非常接近Java...

    Ruby 代码规范

    Ruby是一种动态、面向对象的编程语言,以其优雅的语法和强大的元编程能力而闻名。为了确保代码的可读性、可维护性和团队协作的效率,遵循一定的代码规范至关重要。本篇文章将深入探讨Ruby代码规范,帮助开发者养成...

Global site tag (gtag.js) - Google Analytics