Delegates: Difference between revisions
Content added Content deleted
(Added Kotlin) |
(Added Sidef) |
||
Line 2,016: | Line 2,016: | ||
puts a.delegated # prints "Delegate" |
puts a.delegated # prints "Delegate" |
||
</lang> |
</lang> |
||
=={{header|Sidef}}== |
|||
<lang ruby>class NonDelegate { } |
|||
class Delegate { |
|||
method thing { |
|||
return "delegate implementation" |
|||
} |
|||
} |
|||
class Delegator (delegate = null) { |
|||
method operation { |
|||
if (delegate.respond_to(:thing)) { |
|||
return delegate.thing |
|||
} |
|||
return "default implementation" |
|||
} |
|||
} |
|||
var d = Delegator() |
|||
say "empty: #{d.operation}" |
|||
d.delegate = NonDelegate() |
|||
say "NonDelegate: #{d.operation}" |
|||
d.delegate = Delegate() |
|||
say "Delegate: #{d.operation}"</lang> |
|||
{{out}} |
|||
<pre> |
|||
empty: default implementation |
|||
NonDelegate: default implementation |
|||
Delegate: delegate implementation |
|||
</pre> |
|||
=={{header|Swift}}== |
=={{header|Swift}}== |