File tree Expand file tree Collapse file tree 4 files changed +56
-0
lines changed Expand file tree Collapse file tree 4 files changed +56
-0
lines changed Original file line number Diff line number Diff line change
1
+ const std = @import ("std" );
2
+
3
+ pub fn main () void {
4
+ var value : ? u8 = null ;
5
+ std .debug .print ("Value: {?}\n " , .{value });
6
+
7
+ if (value == null ) {
8
+ value = 32 ;
9
+ }
10
+ std .debug .print ("Value: {?}" , .{value });
11
+ }
Original file line number Diff line number Diff line change
1
+ const std = @import ("std" );
2
+
3
+ pub fn main () void {
4
+ var a : ? u8 = null ;
5
+ const b : u8 = 32 ;
6
+ var c = a orelse b ;
7
+ std .debug .print ("Value: {}\n " , .{c });
8
+
9
+ a = 128 ;
10
+ c = a orelse b ;
11
+ std .debug .print ("Value: {}\n " , .{c });
12
+
13
+ std .debug .print ("Type: {}" , .{@TypeOf (c )});
14
+ }
Original file line number Diff line number Diff line change
1
+ # Optional
2
+
3
+ ``` bash
4
+ $ zig run basic.zig
5
+ Value: null
6
+ Value: 32
7
+ ```
8
+
9
+ ``` bash
10
+ $ zig run orelse.zig
11
+ Value: 32
12
+ Value: 128
13
+ Type: u8
14
+ ```
15
+
16
+ ``` bash
17
+ $ zig run unreachable.zig
18
+ Value: 32
19
+ thread 55352 panic: attempt to use null value
20
+ ```
Original file line number Diff line number Diff line change
1
+ const std = @import ("std" );
2
+
3
+ pub fn main () void {
4
+ var a : ? u8 = 32 ;
5
+ var c = a .? ;
6
+ std .debug .print ("Value: {}\n " , .{c });
7
+
8
+ a = null ;
9
+ c = a .? ; // painc!
10
+ std .debug .print ("Value: {}\n " , .{c });
11
+ }
You can’t perform that action at this time.
0 commit comments