#Ruby# Introspect (2)
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)相关推荐
- #Ruby# Introspect (1)
Introspect,内省,是指从程序自身出发,审视程序各方面的能力.这个过程又称为Reflection,反射. 孔子曰,吾日三省吾身.于人于程序,内省都是非常重要的. 1. Looking at o ...
- Ruby元编程技术(Ruby Metaprogramming techniques)
我最近考虑了很多元编程(Metaprogramming)的问题,并希望看到更多这方面技术的例子和讲解.无论好坏,元编程已经进入Ruby社区,并成为完成各种任务和简化代码的标准方式.既然找不到这类资源, ...
- Ruby: Ruby脚本在测试中的使用
如果存在以下的场景: 1. 放置在公司的读报机服务器,每天都是开启的: 2. 读报机每天下载报纸,一旦成功/失败,就会有相应的记录生成在某个xml文件中: 3. 现在有过去一年的读报机下载xml,大约 ...
- Ruby 之 Block, Proc, Lambda 联系--区别,转载
Ruby 之 Block, Proc, Lambda Block Block 不是对象,是Ruby的语言特性,近似于闭包(Closure). 范例: def meth res= yield ...
- Ubuntu14.04 LTS中安装Ruby 2.4源码操作步骤
(1).查看是否已安装ruby,执行命令,如下图,可见机子上还没有安装ruby,即使通过apt-get install命令安装也只能安装1.8版本: (2).从 http://www.ruby-la ...
- Windows Ruby使用Mysql环境配置
windows下Ruby使用mysql时候报错: Incorrect MySQL client library version! This gem was compile d for 6.0.0 bu ...
- [翻译] Ruby Golf
原文地址:http://rubysource.com/ruby-golf/ Ruby golf is the art of writing code that uses as few characte ...
- Ruby DSL介绍及其在测试数据构造中的使用(2)
在(1)中介绍了DSL和普通的函数定义之间的区别.在(1)的最后提到,DSL分为内部DSL和外部DSL,我们再看一遍他们的定义:1. External DSLs 用不同于host语言的语言来编写,通过 ...
- Ruby DSL介绍及其在测试数据构造中的使用(1)
什么是DSL?英文全称Domain Specific Language,中文解释为领域专用语言.顾名思义,DSL是针对某个特定领域而开发的语言.像我们平时接触到的C/C++,Java,Python/R ...
最新文章
- WebMagic之优秀爬虫框架
- 1. 青蛙跳跳FrogJmp Count minimal number of jumps from position X to Y.
- TreeMap之floorKey
- _LVM——让Linux磁盘空间的弹性管理
- php 读文件返回字符串,PHP:file_get_contents('php:// input')返回JSON消息的字符串...
- extjs 点击下拉框三角形触发事件_省市县三级联动下拉框的具体实现
- mysql event 变量_DQL--select和MySQL的Event
- java访问win10共享盘失败_Win10不能访问共享磁盘的解决方法(亲测能用)
- 设计一函数,求整数区间[a,b]和[c,d]的交集
- Linux下PCI设备驱动程序开发
- Go 相关的框架,库和软件的精选清单
- ArcGis拓扑——规则、概念与要点
- icon图标制作与使用
- 倾斜摄影实景三维与游戏的结合
- 【译】 从源代码构建 deb 包
- c++中 int、long、long long等取值范围
- 客户信息的收集办法有哪些 如何进行客户信息管理
- 计算机考试一般什么内容是什么,计算机一级计算机考试内容是什么
- ROS 下的仿真小乌龟
- microk8s helm2 Error: no available release name found
热门文章
- 【神经网络】(8) 卷积神经网络(Mobilenet_v1),案例:cifar图像10分类
- c语言找出比n小的最大质数,C++ 实现求小于n的最大素数的实例
- groovy怎样从sql语句中截取表名_SQL常用的基础查询语句
- python廖雪峰_【Python】python中实现多进程与多线程
- Debevec方法计算相机响应函数CRF
- Error:CPACK_PACKAGE_VERSION does not match version provided by version.hpp header!
- 机器学习与高维信息检索 - Note 1 - 信息检索、机器学习与随机变量
- 【统计图】Echarts实现多条折线图渐变堆叠效果
- Unity从头到尾无代码游戏制作学习教程
- 进程间通信--命名管道