You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
const std = @import("std");
|
|
|
|
const stdout = std.io.getStdOut().writer();
|
|
|
|
|
|
|
|
fn Box(comptime T: type) type {
|
|
|
|
return struct {
|
|
|
|
value: T,
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
const Point = struct {
|
|
|
|
X: i32 = 1,
|
|
|
|
Y: i32 = 2,
|
|
|
|
};
|
|
|
|
|
|
|
|
pub fn main() !void {
|
|
|
|
var vbox = Box(Point){
|
|
|
|
.value = undefined, // this is gonna be junk
|
|
|
|
};
|
|
|
|
try stdout.print("var box with undefined: {}\n", vbox);
|
|
|
|
|
|
|
|
var vbox2 = Box(Point){
|
|
|
|
.value = Point{}, // this is the default value
|
|
|
|
};
|
|
|
|
try stdout.print("var box with explicit defaults: {}\n", vbox2);
|
|
|
|
|
|
|
|
// looks like the value of this winds up in bss.
|
|
|
|
// https://en.wikipedia.org/wiki/.bss
|
|
|
|
const cbox = Box(Point){
|
|
|
|
.value = undefined, // this is zeroed out memory
|
|
|
|
};
|
|
|
|
try stdout.print("const box with undefined: {}\n", cbox);
|
|
|
|
|
|
|
|
try stdout.print("Box literal with undefined: {}\n", Box(Point){
|
|
|
|
.value = undefined, // this is also zeroed out memory
|
|
|
|
});
|
|
|
|
}
|