Browse Source

Add implicit selector expression examples to demo.odin

gingerBill 6 years ago
parent
commit
007a7989b8
1 changed files with 29 additions and 0 deletions
  1. 29 0
      examples/demo/demo.odin

+ 29 - 0
examples/demo/demo.odin

@@ -746,6 +746,34 @@ map_type :: proc() {
 
 }
 
+implicit_selector_expression :: proc() {
+	fmt.println("# implicit selector expression");
+
+	Foo :: enum {A, B, C};
+
+	f: Foo;
+	f = .A;
+
+	BAR :: bit_set[Foo]{.B, .C};
+
+	switch f {
+	case .A:
+		fmt.println("HERE");
+	case .B:
+		fmt.println("NEVER");
+	case .C:
+		fmt.println("FOREVER");
+	}
+
+	my_map := make(map[Foo]int);
+	defer delete(my_map);
+
+	my_map[.A] = 123;
+	my_map[Foo.B] = 345;
+
+	fmt.println(my_map[.A] + my_map[Foo.B] + my_map[.C]);
+}
+
 explicit_procedure_overloading :: proc() {
 	fmt.println("# explicit procedure overloading");
 
@@ -940,6 +968,7 @@ main :: proc() {
 		named_proc_return_parameters();
 		using_enum();
 		map_type();
+		implicit_selector_expression();
 		explicit_procedure_overloading();
 		complete_switch();
 		cstring_example();