水晶 - 方法指针
答
这是Proc
的用途。
def foo()
puts "foo"
end
def bar()
puts "bar"
end
procs = {->foo, ->bar}
procs.each do |p|
p.call
end
输出
foo
bar
见在线:https://play.crystal-lang.org/#/r/2vb7
它还适用于方法和静态方法:
class A
def self.foo()
puts "A.foo"
end
def bar()
puts "bar"
end
end
proc = ->A.foo
puts proc
proc.call
a = A.new
proc = ->a.bar
proc.call
在官方文档阅读:https://crystal-lang.org/docs/syntax_and_semantics/literals/proc.html