30 lines
540 B
Plaintext
30 lines
540 B
Plaintext
// Generic impl blocks — extend Box<T> with methods
|
|
import Std::Io::{PrintLine, PrintInt};
|
|
|
|
struct Box<T> {
|
|
value: T,
|
|
}
|
|
|
|
extend Box<T> {
|
|
func Get(self: *Box<T>) -> T {
|
|
return self.value;
|
|
}
|
|
|
|
func Set(self: *Box<T>, value: T) {
|
|
self.value = value;
|
|
}
|
|
}
|
|
|
|
func Main() -> int {
|
|
let b: Box<int> = Box<int> { value: 42 };
|
|
PrintLine("Box value:");
|
|
PrintInt(b.Get());
|
|
PrintLine("");
|
|
|
|
b.Set(100);
|
|
PrintLine("Box after Set(100):");
|
|
PrintInt(b.Get());
|
|
PrintLine("");
|
|
|
|
return 0;
|
|
} |