Ist es möglich, Methodenzeiger in Crystal zu verwenden?Crystal - Methodenzeiger
Und wenn ja, wie erstelle und benutze ich sie?
Ich möchte mehrere Anweisungen in einem Array speichern und dann die erforderliche später im Programm aufrufen.
Ist es möglich, Methodenzeiger in Crystal zu verwenden?Crystal - Methodenzeiger
Und wenn ja, wie erstelle und benutze ich sie?
Ich möchte mehrere Anweisungen in einem Array speichern und dann die erforderliche später im Programm aufrufen.
Dies ist, was Proc
ist für.
def foo()
puts "foo"
end
def bar()
puts "bar"
end
procs = {->foo, ->bar}
procs.each do |p|
p.call
end
Ausgänge
foo
bar
Siehe online: https://play.crystal-lang.org/#/r/2vb7
Es ist auch mit Methoden und statischen Methoden funktioniert:
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
mehr in den offiziellen Dokumenten lesen: https://crystal-lang.org/docs/syntax_and_semantics/literals/proc.html