当前位置:  开发笔记 > 后端 > 正文

当你说Ruby是反思的时候,这主要是指"鸭子打字"吗?

如何解决《当你说Ruby是反思的时候,这主要是指"鸭子打字"吗?》经验,为你挑选了1个好方法。

我正在阅读描述Ruby的文本,它说如下:

Ruby被认为是一种"反思"语言,因为Ruby程序可以分析自身(就其构成而言),调整其工作方式,甚至用其他代码覆盖自己的代码.

我对这个术语"反思"感到困惑 - 这主要是谈论Ruby可以查看变量的方式,并弄清楚它是一个整数还是一个字符串(鸭子打字),例如:

x = 3
x = "three" # Ruby reassigns x to a String type

Ethan.. 9

要说Ruby是"反思的"意味着你可以在运行时找出一个类有哪些方法:

>> Array.methods
=> ["inspect", "private_class_method", "const_missing",
[ ... and many more ... ]

(你可以用类的对象做同样的事情.)

或者你可以找出给定对象是什么类...

>> arr = Array.new
=> []
>> arr.class
=> Array

并找出它在类层次结构中的含义......

>> arr.kind_of?
>> arr.kind_of? Array
=> true
>> arr.kind_of? String
=> false

在引用中,他们说"Ruby程序可以分析自己"这就是他们所说的.

其他语言(如Java)也可以这样做,但使用Ruby它更容易,更方便,而且更多的是使用该语言的日常部分.因此,Ruby是"反思的".



1> Ethan..:

要说Ruby是"反思的"意味着你可以在运行时找出一个类有哪些方法:

>> Array.methods
=> ["inspect", "private_class_method", "const_missing",
[ ... and many more ... ]

(你可以用类的对象做同样的事情.)

或者你可以找出给定对象是什么类...

>> arr = Array.new
=> []
>> arr.class
=> Array

并找出它在类层次结构中的含义......

>> arr.kind_of?
>> arr.kind_of? Array
=> true
>> arr.kind_of? String
=> false

在引用中,他们说"Ruby程序可以分析自己"这就是他们所说的.

其他语言(如Java)也可以这样做,但使用Ruby它更容易,更方便,而且更多的是使用该语言的日常部分.因此,Ruby是"反思的".

推荐阅读
和谐啄木鸟
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有