Ruby的self在不同的环境中有不同的含义,这点和java的this不同,原因是java实际上只有一种环境--在class的实例方法定义中使用,代表访问这个方法参数自动传进的那个对象。而由于ruby作为一个完全纯净的面向对象语言,任何东东都是对象,方法是对象,类也是对象...,所以self就会有很多环境,区分不同环境的self含义才能更好的理解程序的含义
一、Top Level Context
puts self
打印出main,这个代表Object的默认对象main.
二、在class或module的定义中:
在class和module的定义中,self代表这个class或这module对象:
class S
puts 'Just started class S'
puts self
module M
puts 'Nested module S::M'
puts self
end
puts 'Back in the outer level of S'
puts self
end
输出结果:
写道
>ruby self1.rb
Just started class S
S
Nested module S::M
S::M
Back in the outer level of S
S
>Exit code: 0
三、在实例的方法定义中:
这点和java的this代表的东东一样:程序自动传递的调用这个方法的对象
class S
def m
puts 'Class S method m:'
puts self
end
end
s = S.new
s.m
运行结果:
写道
>ruby self2.rb
Class S method m:
#<S:0x2835908>
>Exit code: 0
四、在单例方法或者类方法中:
单例方法是针对一个对象添加的方法,只有这个对象拥有和访问这个方法,这时候self是拥有这个方法的对象:
# self3.rb
obj = Object.new
def obj.show
print 'I am an object: '
puts "here's self inside a singleton method of mine:"
puts self
end
obj.show
print 'And inspecting obj from outside, '
puts "to be sure it's the same object:"
puts obj
运行结果:
写道
ruby self3.rb
I am an object: here's self inside a singleton method of mine:
#<Object:0x2835688>
And inspecting obj from outside, to be sure it's the same object:
#<Object:0x2835688>
>Exit code: 0
在类方法中self代表这个类对象:
# self4.rb
class S
def S.x
puts "Class method of class S"
puts self
end
end
S.x
运行结果:
写道
>ruby self4.rb
Class method of class S
S
>Exit code: 0
从上面的例子我们可以看出不管是ruby的self还是java的this都表示在当前的环境下你可以访问的当前的或者默认的对象。
以上来自http://rubylearning.com/satishtalim/ruby_self.html 的总结
分享到:
相关推荐
在Windows环境下设置和使用Ruby工具对于开发者来说是一项基础任务。本文将深入探讨Ruby在Windows平台上的安装、配置以及基本使用。 首先,让我们关注标题中的"Ruby工具 windows 环境"。在Windows上安装Ruby,你需要...
为了在没有外网连接的环境中搭建Ruby环境,你需要提前下载并准备相关的安装包。在提供的压缩包中,包含了三个关键文件:`ruby-2.7.2.tar.gz`、`redis-6.0.9.tar.gz` 和 `rubygems-3.1.5.tgz`。接下来,我们将详细...
Ruby集成开发环境,不用再在控制台上编写你的Ruby代码,方便书写提示和调试工作。
这可以通过Ruby Installer(对于Windows用户)或使用像RVM(Ruby Version Manager)或rbenv(Ruby环境管理器)这样的工具完成,它们允许你轻松地切换和管理不同的Ruby版本。 2. 配置Gem源:默认情况下,Ruby会连接...
在学习 Ruby 语言时,首要任务就是搭建 Ruby 的运行环境。只有当运行环境搭建完成后,才能找到符合以往开发习惯的 IDE 工具、看一看入门的例子、学习语言相关的知识。搭建 Ruby 运行环境是学习 Ruby 的第一步骤。 ...
下面列出了在 Windows 机器上安装 Ruby 的步骤。 注意:在安装时,您可能有不同的可用版本。 Window 系统下,我们可以使用 RubyInstaller 来安装 Ruby 环境,下载地址为:请点击这里下载。 下载 ...
在使用前需先配置 Ruby On Rails 的开发环境,本文将介绍如何在 Ubuntu 12.04 系统下配置 Ruby On Rails 开发环境。 一、安装系统需要的包 在安装 Ruby On Rails 之前,需要安装一些必要的包,包括 build-...
在这个开发环境包中,我们拥有Ruby 1.8.7版本和Rails 2.2.3版本,这两个组件构成了一个经典的开发组合。 Ruby 1.8.7是Ruby编程语言的一个早期稳定版本,发布于2010年,提供了许多改进和新特性。在Ruby 1.8.x系列中...
在Windows操作系统上配置Ruby运行环境是一项重要的步骤,尤其对于开发者来说,这将使得你能够运行Ruby程序和使用相关的开发工具。Ruby是一种动态、面向对象的脚本语言,它以其简洁的语法和强大的元编程能力而受到...
在本主题中,我们将深入探讨如何下载Ruby安装包并搭建Ruby环境,以及它与Redis的关系。 首先,让我们来了解如何下载和安装Ruby。Ruby的官方下载页面提供了适用于不同操作系统的安装包,包括Windows、Mac OS X和...
在Ruby开发中,为了管理不同版本的Ruby环境,我们常常会使用到`rbenv`和`ruby-build`这两个工具。本文将详细介绍如何使用`ruby-build`来编译和安装Ruby。 `rbenv`是一个用于管理全局或用户级别的Ruby版本的工具,它...
在Ruby的世界里,管理不同的Ruby实现(如MRI、JRuby、Rubinius、MagLev和MRuby)是非常重要的,这有助于开发者根据项目需求选择最适合的运行时环境。`ruby-install`就是这样一个工具,它允许用户方便地安装和管理...
在Windows环境下,搭建Ruby开发环境是一项基础而重要的工作,它涉及到多个步骤,包括安装必要的软件、配置环境变量以及集成开发工具的设置。本教程将详细讲解如何使用RDT(Ruby Development Tools)与Eclipse来创建...
在Ruby应用程序中,我们经常需要设置环境变量来控制不同环境(如开发、测试和生产)的行为。这些变量可能包括数据库连接字符串、API密钥或服务端点。将这些信息硬编码到代码中是不安全的,因为它们可能会无意中被...
Ruby Ruby Ruby Ruby Ruby Ruby
这个是ruby的集成开发环境,适合ruby新手直接上手使用进入编程;就是类似Microsoft Visual Studio 2010那样方便的ruby编程开发工具,关键词高亮、自动语法提示等等,使用起来比较方便。这是NetBeans的最后一个专门...
在Windows系统上搭建RoR开发环境,首先要下载并安装Ruby的一键安装包。你可以从RubyForge网站获取最新版本的Ruby Installer,如Ruby 1.8.4-16。安装过程非常简单,只需按照向导一步步操作,安装完成后通过命令行窗口...
Ruby Gem环境是Ruby编程语言中的一个关键组成部分,它是一个包管理器,负责安装、管理和使用Ruby库,也就是所谓的Gems。在Ruby世界中, Gems不仅仅是代码库,它们包含了执行脚本、元数据以及用于安装和运行时的依赖...