`
wangdeshui
  • 浏览: 255765 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

一步一步学Ruby(十四): self和作用域

阅读更多

一、默认对象或当前对象是self

为了知道哪个对象是当前对象,必须知道当前的上下文

1、顶层self对象

image

2、类和模块中的self

image

3、实例方法的self

image

4、单例方法的self

image

5.类方法

image

6、实例变量和self

image

二、Ruby代码的保护级别

  • ruby默认的方法是公有的,任何地方都可以调用
  • private定义私有,只有对象内部可以调用
  • protected 定义保护的,同一个类的实例之间可调用

    image image

本文作者: 王德水

未经同意,禁止转载

分享到:
评论

相关推荐

    Ruby - Ruby for Rails

    - **作用域规则**:深入理解 Ruby 中的作用域规则,包括局部作用域、类作用域等。 - **块与闭包**:介绍块的概念及其与闭包的区别,以及如何在 Ruby 中使用它们。 #### 2.5 控制流技术 - **条件语句**:讲解 if、...

    ruby初学者教程(对初学者很有帮助)

    - **局部变量**:以小写字母或下划线开头的变量,作用域限于当前块。 - **实例变量**:以`@`开头的变量,属于特定对象,可以在该对象的任何方法中访问。 - **类变量**:以`@@`开头的变量,属于整个类,可以在该类的...

    ruby trap 初学者使用

    理解它们的作用域和用法是避免陷阱的关键。 - 常量在Ruby中是可变的,但改变常量值会引发警告,初学者应避免随意修改。 2. **符号(Symbol)**: - 符号是Ruby中的一种特殊数据类型,它们是不可变的,常用于哈希...

    ruby for rails

    4. **The default object (self) and scope**:Ruby中的`self`关键字,它如何指示方法调用的目标对象,以及作用域规则,包括局部作用域、实例作用域和类作用域。 5. **Control flow techniques**:控制流程的技巧,...

    动态加载的艺术:Ruby中require与load的区别

    - **局部作用域**:通过 `load` 加载的文件将在调用它的局部作用域中执行,这有助于保持作用域的一致性。 - **指定路径**:必须提供文件的完整路径或相对路径。 #### `require` 与 `load` 的核心区别 虽然 `...

    ruby中文教程(源代码)

    它们各自有不同的命名规则和作用域。 - 数据类型:Ruby是动态类型语言,主要数据类型包括字符串(`String`)、整数(`Integer`)、浮点数(`Float`)、布尔值(`TrueClass`和`FalseClass`)、数组(`Array`)、哈希...

    Ruby程序设计(简洁清新的教程)

    - **局部变量**:作用域限制在定义它的方法内部。 - **实例变量**:以`@`开头,作用于整个类的所有实例。 - **类变量**:以`@@`开头,作用于整个类的所有实例及子类。 - **全局变量**:以`$`开头,可在程序的任何...

    Ruby for Rails

    3. **默认对象(self)与作用域** - `self`关键字在Ruby中表示当前对象或类的上下文。 - 作用域决定了变量的可见性,局部变量只能在其定义的作用域内访问。 4. **控制流技术** - 控制流是指程序执行的顺序。 - ...

    ruby-main.zip

    9. **闭包**:Ruby中的Blocks、Procs和Lambdas都具有闭包特性,能捕获其定义时的作用域内的变量,即使在定义后变量已改变或销毁。 10. **Ruby版本管理**:为了方便在不同版本的Ruby之间切换,有工具如RVM(Ruby ...

    RUBY基础入门指南

    - **局部变量**:作用域仅限于定义它们的方法或代码块。 - **实例变量**:以`@`开头,属于特定对象。 - **类变量**:以`@@`开头,属于类的所有实例。 - **全局变量**:以`$`开头,在整个程序中可用。 - **常量**:以...

    Ruby Sheet.pdf

    - **作用域运算符**:`::`。 - **数组索引**:`[]`。 - **幂运算**:`**`。 - **一元运算符**:`+`, `-`, `!`, `~`。 - **乘除模运算**:`*`, `/`, `%`。 - **位移运算**:`, `>>`。 - **按位与或运算**:`&`, `|`。...

    Ruby语言中文教程

    理解它们的作用域和用法是学习Ruby的基础。 - 数据类型:包括字符串(`String`)、数字(`Integer`和`Float`)、布尔值(`TrueClass`和`FalseClass`)、数组(`Array`)、哈希(`Hash`)等。 - 控制结构:如条件...

    Ruby常见面试题.pdf

    变量名区分大小写,并且以特定字符开头来表示其作用域: - **局部变量**:以小写字母或下划线开头。 - **实例变量**:以`@`开头。 - **类变量**:以`@@`开头。 - **全局变量**:以`$`开头。 **示例**: ```ruby # ...

    Ruby最简单的初级教程

    3. 闭包:Ruby的块具有闭包特性,能记住其定义时的作用域,即使在其他地方调用也能访问到。 五、Gem与Ruby生态系统 Ruby的库通常以Gem的形式存在,通过`gem install`命令安装。RubyGems是管理这些Gem的工具,它提供...

    ruby 程序设计

    - **局部变量**:作用域仅限于定义它的方法内部。 - **实例变量**:以`@`开头的变量,可以在对象的所有方法之间共享。 - **类变量**:以`@@`开头的变量,可以在类的所有实例之间共享。 - **全局变量**:以`$`开头的...

    ruby源代码7

    5. **闭包(Closure)**:Ruby的块和Proc具有闭包特性,即它们能记住定义时的作用域,即使在其他地方调用也能访问到。 6. **元编程**:Ruby的元编程能力强大,允许在运行时修改类和对象。`class<<self`用于打开当前...

    ruby语言

    7. **闭包**:Ruby的块(block)和Proc、Lambda都是闭包,它们可以记住定义时的作用域,即使在其他地方调用也能访问到这些变量。 8. **动态性**:Ruby允许在运行时修改类和对象,比如动态添加方法、属性或者改变类...

    Meta Programming Ruby

    4. **闭包与块**:Ruby支持闭包(closures),即可以访问其定义作用域外部变量的函数。闭包在Ruby中通常以“块”的形式出现,并且可以作为参数传递给方法。 5. **模块与混合**:通过将模块混入(mix-in)类中,可以...

Global site tag (gtag.js) - Google Analytics