diff options
| author | Michael Williamson <mike@zwobble.org> | 2025-03-08 13:39:40 +0000 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2025-03-08 13:39:40 +0000 |
| commit | 8cfdfc92fcf41f5db6d30015b20457ca64f0c3ce (patch) | |
| tree | 7dfd0d403b6b8add040eb1e09515194ca6b26065 /examples/41-struct-method-references/src | |
| parent | 2462a913d149fe896134519d95d65c3adfa30e47 (diff) | |
Support method calls from other namespaces (without Wasm support)
Diffstat (limited to 'examples/41-struct-method-references/src')
| -rw-r--r-- | examples/41-struct-method-references/src/HelloWorld.shed | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/examples/41-struct-method-references/src/HelloWorld.shed b/examples/41-struct-method-references/src/HelloWorld.shed new file mode 100644 index 00000000..5bfd3631 --- /dev/null +++ b/examples/41-struct-method-references/src/HelloWorld.shed @@ -0,0 +1,25 @@ +pub fun main() ! Io -> Unit { + val one = Count(1).message; + val two = Count(2).message; + val three = Count(3).message; + + print!(one("apple", .exclaim = false)); + print!(two("bananas", .exclaim = false)); + print!(three("coconuts", .exclaim = true)); +} + +struct Count(value: Int) { + fun message(this, noun: String, .exclaim: Bool) -> String { + val prefix = if (this.value == 1) { + "one" + } else if (this.value == 2) { + "two" + } else { + "many" + }; + + val exclamation = if (exclaim) { "!" } else { "" }; + + prefix + " " + noun + exclamation + "\n" + } +} |
