複雑なデータ型を作る方法の1つです。両方の値が必要になるでしょう。これら2つを1つのデータ型にまとめることができます。origin.y);}ここで多くの情報が出てきましたから、順番に見ていきましょう。キーワードを使って構造体とその名前を宣言しています。慣習により、構造体は初めが大文字のキャメルケースで記述しています。スタイルの構文でそれぞれのフィールドに値をセットしています。順序は元の宣言と同じである必要はありません。いうようにドット表記でアクセスできます。持つ値はイミュータブルがデフォルトです。使うと値をミュータブルにできます。Rustは言語レベルでフィールドのミュータビリティに対応していないため、以下の様に書くことはできません。i32,}ミュータビリティは束縛に付与できる属性であり、構造体自体に付与できる属性ではありません。あなたがフィールドレベルのミュータビリティを使うのであれば、初めこそ奇妙に見えるものの、非常に簡単に実現できる方法があります。以下の方法で少しの間だけミュータブルな構造体を作ることができます。含めることができます。};ここではpointに新しいyを与えていますが、xとzは元の値のままです。コピー先は元の構造体と同じである必要はなく、この構文で新しい構造体を作ることもできます。その場合、指定しなかったフィールドは元の構造体からコピーされます。ハイブリットのようなデータ型があります。タプル構造体自体には名前がありますが、そのフィールドには名前がありません。i32);これら2つは同じ値を持つ同士であったとしても等しくありません。使ったほうが良いです。このようにも書けます。i32,}今、私たちはフィールドの位置ではなく実際のフィールドの名前を持っています。使うということは、実際に名前を持っているということです。原文を元に噛み砕くと、「タプルはフィールドの並びによって区別され、構造体はフィールドの名前によって区別されます。これはタプルと構造体の最たる違いであり、構造体を持つことは名前を付けられたデータの集まりを持つことに等しいため、構造体における名前付けは重要です。」といった所でしょうか。要素が1つだけの場合です。要素の値と区別でき、独自の意味を表現できるような新しい型を作成できることから、私たちはこれを「newtype」パターンと呼んでいます。使って分解することで内部の整数型を取り出すことができます。定義することもできます。Electron;このような構造体は「unit-like」であると言われます。構造体も新しい型を定義します。これは単体では滅多に役に立ちません(マーカ型として使える場合もあります)が、他の機能と組み合わせると便利な場合があります。ライブラリがイベントを処理する特定のトレイトを実装する構造体の作成を要求するかもしれません。作るだけで良いのです。