Send an unknown method call: Difference between revisions

Content added Content deleted
(added objective-c)
(→‎Tcl: Added implementation)
Line 99: Line 99:
Example.new.send symbol # => 42
Example.new.send symbol # => 42
Example.new.send( :bar, 1, 2 ) { |x,y| x+y } # => 3</lang>
Example.new.send( :bar, 1, 2 ) { |x,y| x+y } # => 3</lang>

=={{header|Tcl}}==
Method names are really just strings, i.e., ordinary values that can be produced by any mechanism:
<lang tcl>package require Tcl 8.6
oo::class create Example {
method foo {} {return 42}
method 1 {s} {puts "fee$s"}
method 2 {s} {puts "fie$s"}
method 3 {s} {puts "foe$s"}
method 4 {s} {puts "fum$s"}
}
set eg [Example new]
set mthd [format "%c%c%c" 102 111 111]; # A "foo" by any other means would smell as sweet
puts [$eg $mthd]
for {set i 1} {$i <= 4} {incr i} {
$eg $i ...
}</lang>
The above produces this output:
<pre>
42
fee...
fie...
foe...
fum...
</pre>