blockの巣

Rustの要素1つのTupleとカンマ

2023/05/30 13:07 公開
Rust

RustではTupleの変数・型の宣言時に末尾に,を付けることができます。
以下のように書いたときそれぞれの型は以下のようになります。

let a = (1_i32);          // i32
let b = (1_i32,);         // (i32)
let c = (1_i32, 2_i32);   // (i32, i32)
let d = (1_i32, 2_i32, ); // (i32, i32)

(1_i32)のような書き方ではtupleではなくi32型として扱われコンパイラからは使用していない括弧を削除するよう求められます。
そのため要素が1つのTupleを使用するときには(1_i32, )のように末尾に,を入れてTupleで有ることを明示してやる必要があります。

(1_i32, 2_i32)(1_i32, 2_i32, )の場合はどちらも(i32, i32)として扱われます。