3. Looking at Classes

superclass => get the parent of any particular class

ancestors => get both superclasses and mixin modules

在Ruby1.9中,任何未指定的class都继承自Object,而Object继承自BasicObject,BasicObject无superclass。

4. Looking inside Classes

class Demo
endDemo.private_instance_methods(false)
Demo.protected_instance_methods(false)
Demo.public_instance_methods(false)
Demo.singleton_methods(false)
Demo.class_variables
Demo.constants(false)

5. Calling Mehods Dynamically

obj.method(sym)    -> method

Looks up the named method as a receiver in obj, returning a Method

object (or raising NameError). The Method object acts as a closure in

obj's object instance, so instance variables and the value of self

remain available.

len="hello".method(:length)
len.call # => 5

也可以这样使用:

def double(a)2*a
end
method_object = method(:double)
[ 1, 3, 5, 7 ].map(&method_object)

或者:

str = %q{puts "hello".length}eval str # => 5

#Ruby# Introspect (2)相关推荐

  1. #Ruby# Introspect (1)

    Introspect,内省,是指从程序自身出发,审视程序各方面的能力.这个过程又称为Reflection,反射. 孔子曰,吾日三省吾身.于人于程序,内省都是非常重要的. 1. Looking at o ...

  2. Ruby元编程技术(Ruby Metaprogramming techniques)

    我最近考虑了很多元编程(Metaprogramming)的问题,并希望看到更多这方面技术的例子和讲解.无论好坏,元编程已经进入Ruby社区,并成为完成各种任务和简化代码的标准方式.既然找不到这类资源, ...

  3. Ruby: Ruby脚本在测试中的使用

    如果存在以下的场景: 1. 放置在公司的读报机服务器,每天都是开启的: 2. 读报机每天下载报纸,一旦成功/失败,就会有相应的记录生成在某个xml文件中: 3. 现在有过去一年的读报机下载xml,大约 ...

  4. Ruby 之 Block, Proc, Lambda 联系--区别,转载

    Ruby 之 Block, Proc, Lambda Block Block 不是对象,是Ruby的语言特性,近似于闭包(Closure). 范例: def meth    res=  yield   ...

  5. Ubuntu14.04 LTS中安装Ruby 2.4源码操作步骤

    (1).查看是否已安装ruby,执行命令,如下图,可见机子上还没有安装ruby,即使通过apt-get install命令安装也只能安装1.8版本: (2).从  http://www.ruby-la ...

  6. Windows Ruby使用Mysql环境配置

    windows下Ruby使用mysql时候报错: Incorrect MySQL client library version! This gem was compile d for 6.0.0 bu ...

  7. [翻译] Ruby Golf

    原文地址:http://rubysource.com/ruby-golf/ Ruby golf is the art of writing code that uses as few characte ...

  8. Ruby DSL介绍及其在测试数据构造中的使用(2)

    在(1)中介绍了DSL和普通的函数定义之间的区别.在(1)的最后提到,DSL分为内部DSL和外部DSL,我们再看一遍他们的定义:1. External DSLs 用不同于host语言的语言来编写,通过 ...

  9. Ruby DSL介绍及其在测试数据构造中的使用(1)

    什么是DSL?英文全称Domain Specific Language,中文解释为领域专用语言.顾名思义,DSL是针对某个特定领域而开发的语言.像我们平时接触到的C/C++,Java,Python/R ...

最新文章

  1. WebMagic之优秀爬虫框架
  2. 1. 青蛙跳跳FrogJmp Count minimal number of jumps from position X to Y.
  3. TreeMap之floorKey
  4. _LVM——让Linux磁盘空间的弹性管理
  5. php 读文件返回字符串,PHP:file_get_contents('php:// input')返回JSON消息的字符串...
  6. extjs 点击下拉框三角形触发事件_省市县三级联动下拉框的具体实现
  7. mysql event 变量_DQL--select和MySQL的Event
  8. java访问win10共享盘失败_Win10不能访问共享磁盘的解决方法(亲测能用)
  9. 设计一函数,求整数区间[a,b]和[c,d]的交集
  10. Linux下PCI设备驱动程序开发
  11. Go 相关的框架,库和软件的精选清单
  12. ArcGis拓扑——规则、概念与要点
  13. icon图标制作与使用
  14. 倾斜摄影实景三维与游戏的结合
  15. 【译】 从源代码构建 deb 包
  16. c++中 int、long、long long等取值范围
  17. 客户信息的收集办法有哪些 如何进行客户信息管理
  18. 计算机考试一般什么内容是什么,计算机一级计算机考试内容是什么
  19. ROS 下的仿真小乌龟
  20. microk8s helm2 Error: no available release name found

热门文章

  1. 【神经网络】(8) 卷积神经网络(Mobilenet_v1),案例:cifar图像10分类
  2. c语言找出比n小的最大质数,C++ 实现求小于n的最大素数的实例
  3. groovy怎样从sql语句中截取表名_SQL常用的基础查询语句
  4. python廖雪峰_【Python】python中实现多进程与多线程
  5. Debevec方法计算相机响应函数CRF
  6. Error:CPACK_PACKAGE_VERSION does not match version provided by version.hpp header!
  7. 机器学习与高维信息检索 - Note 1 - 信息检索、机器学习与随机变量
  8. 【统计图】Echarts实现多条折线图渐变堆叠效果
  9. Unity从头到尾无代码游戏制作学习教程
  10. 进程间通信--命名管道