@addWithOverflowと@subWithOverflowについて
この関数は、オーバーフローやアンダーフローがおきそうな場合に用いる関数である
0.10.1
定義
@addWithOverflow(comptime T: type, a: T, b: T, result: *T) bool
addの結果をresultに格納し、判定をreturnのところで確認している
使い方
var flag: bool = false;
var result: u64 = undefined;
flag = @addWithOverflow(u64, 1, 2, &result);
0.11.0-dev
定義
@addWithOverflow(a: anytype, b: anytype) struct { @TypeOf(a, b), u1 }
使い方
var result: struct { u64, u1 } = @addWithOverflow(1, 2);
result[0]がaddの結果である。result[1]は0か1が入る。
違い
0.10.1と違うところは0.10.1はbool値であるが0.11.0-devはu1であるところである
さいごに
詳細は公式ドキュメントを確認してください