Ruby中的eval家族方法与可调用对象
1. eval家族方法
1.1 概述
Ruby和许多编程语言一样,具备在运行时执行以字符串形式存储的代码的能力。实际上,Ruby有一系列相关技术来实现这一点,这些技术虽然目的各有不同,但原理相似:在程序执行过程中,告诉程序“无论之前从程序文件中读取了什么,现在立即执行这段代码”。
1.2 eval方法
- 基本用法 :
eval方法用于执行你提供的字符串代码。例如:
eval("2+2")
# => 4
- 动态创建方法示例 :你可以使用
eval动态创建方法,示例代码如下:
print "Method name: "
m = gets.chomp
eval("def #{m}; puts 'Hi!'; end")
eval(m)
当你运行这段代码并输入 abc 时,会创建一个名为 abc 的方法,并调用该方法输出 Hi! 。
- eval的危险性 :
eval虽然功能强大,但也存在很大的安全风险。例如,如
超级会员免费看
订阅专栏 解锁全文
3

被折叠的 条评论
为什么被折叠?



