Ruby中的语言特性—反射技术

本文探讨了Ruby中的反射技术,通过`methods`方法展示了如何获取对象的所有可用方法,并介绍了`singleton_methods`如何列出实例被重写的方法,揭示了Ruby在方法重载和实例灵活性方面的强大功能。
摘要由CSDN通过智能技术生成
java与c#等高级语语言都支持反射技术,Ruby也不例外。
学习一种语言必须了解它的一些特性,在上一篇《 开发软件常用到的几个最基本技能(RUBY 语言描述)。》中也简单地提到Ruby的一些语言物性,在这里想单独说明一下Ruby中的常用的一些技巧。而反射技术在其它多种与言中也是广泛地使用的。因此在这里先说明Ruby中如何利用反射技术。
反射主要是用于动态地调用一些例实例或类型的方法。在java与C#等静态语言中是十分普遍的。以下先看一下最简单的例子:
obj = " Hello World "
puts obj
. methods  # 输入对象可以使用的方法
puts obj . class  # 输入对像的类型
puts obj . class . superclass  # 输入对象的父类   

第一行创建了一个字符串对象,但我们刚接触Ruby这个语言,我们并不知道这种类型的对象有什么方法可以为我们服务。所以我们调用这个对象的mehtods方法(每个一对象都有这个方法)。这个方法所回一个数组,数组的内容是这个对象的所有能调用的方法。因些运行这个程序,屏幕会输出以下内容: 
select
[]=
inspect
<<
each_byte
clone
......
...
..

怎么样,这功能不错吧?还有更精彩的内容在后头呢。
Ruby不但支持类型的方法重载,还支持对实例的方法重载

class MyClass
    def MyClass
. static_method1
        puts 
" this is static method1 "
    end
    def instance_method1
        puts 
" this is instance method1 "
    end
end   
obj
= MyClass . new   
# 下面这三个
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值