我已经看到一些观点认为Rust和M#可能会选择编译时反射,因为运行时反射很昂贵并且增加了二进制文件的大小。到目前为止,我找不到任何好的比较,只是一些运行时反思的观点很少是一个好主意"。似乎探索内置编译时反射概念的语言仍处于开发阶段。
到目前为止我读过的资料来源:
答案 0 :(得分:1)
这里有一些Ruby:
m = STDIN.gets.chomp
puts Object.respond_to?(m)
在编译时不可能这样做。我的意思是,使用CTFE,您可以技术上在编译时运行此代码,但作为正在运行的程序的一部分,它不会真正起作用。
另一个有趣的一个:
$m = STDIN.gets.chomp
class Object
define_method $m do
puts "zomg"
end
end
class Foo; end
Foo.new.send($m)
这打印" zomg"。