ruby中顶层定义的方法究竟放在哪里?

    ruby中顶层(top level)中定义的方法放在main中,证明如下:

self.private_methods(false) #IN TOP LEVEL

    那么methods方法究竟是在哪定义的,书上说是在Object中,但在ruby1.9.2p290中是在Kernel中定义的,证明如下:

Kernel.public_instance_methods(false)

时间: 2024-10-02 23:19:50

ruby中顶层定义的方法究竟放在哪里?的相关文章

Ruby中注释的使用方法

  这篇文章主要介绍了解读Ruby中注释的使用方法,注释的用法是每门编程语言中最基本的知识点之一,需要的朋友可以参考下 Ruby行内注释的代码在运行时被忽略.单行注释#字符开始,他们从#到行末如下: ? 1 2 3 4 5 #!/usr/bin/ruby -w   # This is a single line comment.   puts "Hello, Ruby!" 上述程序执行时,会产生以下结果: ? 1 Hello, Ruby! Ruby的多行注释 可以注释掉多行使用 =be

Ruby中操作文件的方法介绍

  这篇文章主要介绍了Ruby中操作文件的方法介绍,是Ruby学习当中的基础知识,需要的朋友可以参考下 Ruby提供了一套完整的I/O相关的内核模块中实现方法.所有I/O方法来自IO类. 类IO提供了所有的基本方法,如 read, write, gets, puts, readline, getc 和 printf. 本章将涵盖所有可供在Ruby中使用的基本I/O功能.如需使用更多的功能,请参考Ruby的IO类. puts 语句: 在前面的章节中,你指定值的变量和然后使用声明 puts 输出.

在Ruby中查找和执行方法_ruby专题

当调用一个方法时,Ruby会做两件事. 1.找到这个方法.这个方法称为方法查找. 2.执行这个方法.为了做到这点,Ruby需要一个叫做self的东西. 这样的一个过程--发现一个方法再执行之--在每种面向对象语言中都会发生.不过,对于像Ruby这样非常动态的语言,深入理解这个过程显得尤为重要.你有没有好奇过一个方法究竟定义在哪里呢?如果有,那绝对应该深入理解方法查找及self. 当调用一个方法时,Ruby会在对象的类中查找那个方法.不过,在给出更复杂的例子之前,你需要了解两个新概念:接收者(re

Ruby中操作文件的方法介绍_ruby专题

 Ruby提供了一套完整的I/O相关的内核模块中实现方法.所有I/O方法来自IO类. 类IO提供了所有的基本方法,如 read, write, gets, puts, readline, getc 和 printf. 本章将涵盖所有可供在Ruby中使用的基本I/O功能.如需使用更多的功能,请参考Ruby的IO类.puts 语句: 在前面的章节中,你指定值的变量和然后使用声明 puts 输出. puts 把语句指示程序显示存储在变量值.这将添加一个新行,每行末尾写出(输出). 例子: #!/usr

举例讲解Ruby中require的使用方法_ruby专题

同一目录下的文件,如/usr/local/ruby/foo.rb与/usr/local/ruby/bar.rb两个文件. 如果直接在foo.rb中   require 'bar' 执行时会报找不到bar.rb错误. 这是因为运行   /home/oldsong$ ruby /usr/local/ruby/foo.rb 时会在ruby安装的lib目录和/home/oldsong/目录下查找bar.rb.而不会去rb文件的目录/usr/local/ruby/下查找. 所以除引用系统rb外,requi

解读Ruby中注释的使用方法_ruby专题

 Ruby行内注释的代码在运行时被忽略.单行注释#字符开始,他们从#到行末如下: #!/usr/bin/ruby -w # This is a single line comment. puts "Hello, Ruby!" 上述程序执行时,会产生以下结果: Hello, Ruby! Ruby的多行注释 可以注释掉多行使用 =begin 和 =end 语法如下: #!/usr/bin/ruby -w puts "Hello, Ruby!" =begin This i

解决C++中重定义的方法总结_C 语言

C++由于头文件重复包含了所定义的变量或者常量,编译器就会报重复定义的错误.如果你碰见这样的问题可以考虑重下面几个方面去解决: 1.在出现重定义错误的头文件加上:#ifndef FileName_H_#define FileName_H_ ....(头文件内容)#endif注意如果FileName_H_这个名字已经被使用,将会出现未定义问题(这里不讨论),这是你保证FileName_H_唯一就可以. 2.在出现重定义错误的头文件加上这一句:#pragma once 就可以解决(VS建立的类都会默

Ruby中的方法概念

  这篇文章主要介绍了详解Ruby中的方法概念,包括方法的自定义和返回值等基础知识,需要的朋友可以参考下 Ruby方法跟其他编程语言中的函数非常相似, Ruby方法用于捆绑到一个单元中的一个或多个重复的语句. 方法名称应以小写字母开始.如果一个方法的名称以大写字母开始,Ruby可能会认为这是一个常数,因此可以正确解析调用. 方法应该定义Ruby的之前调用他们,否则会引发一个异常未定义的方法调用. 语法: ? 1 2 3 def method_name [( [arg [= default]]..

详解Ruby中的方法概念_ruby专题

 Ruby方法跟其他编程语言中的函数非常相似, Ruby方法用于捆绑到一个单元中的一个或多个重复的语句. 方法名称应以小写字母开始.如果一个方法的名称以大写字母开始,Ruby可能会认为这是一个常数,因此可以正确解析调用. 方法应该定义Ruby的之前调用他们,否则会引发一个异常未定义的方法调用. 语法: def method_name [( [arg [= default]]...[, * arg [, &expr ]])] expr.. end 所以,可以定义一个简单的方法如下: def met