From 8cfdfc92fcf41f5db6d30015b20457ca64f0c3ce Mon Sep 17 00:00:00 2001 From: Michael Williamson Date: Sat, 8 Mar 2025 13:39:40 +0000 Subject: Support method calls from other namespaces (without Wasm support) --- .../src/HelloWorld.shed | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 examples/41-struct-method-references/src/HelloWorld.shed (limited to 'examples/41-struct-method-references/src') 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" + } +} -- cgit v1.2.3