<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>https://mochiu.net/index.php?action=history&amp;feed=atom&amp;title=Rust%E3%81%AE%E5%9F%BA%E7%A4%8E_-_%E3%82%BF%E3%83%97%E3%83%AB</id>
	<title>Rustの基礎 - タプル - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="https://mochiu.net/index.php?action=history&amp;feed=atom&amp;title=Rust%E3%81%AE%E5%9F%BA%E7%A4%8E_-_%E3%82%BF%E3%83%97%E3%83%AB"/>
	<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=Rust%E3%81%AE%E5%9F%BA%E7%A4%8E_-_%E3%82%BF%E3%83%97%E3%83%AB&amp;action=history"/>
	<updated>2026-07-02T15:00:33Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://mochiu.net/index.php?title=Rust%E3%81%AE%E5%9F%BA%E7%A4%8E_-_%E3%82%BF%E3%83%97%E3%83%AB&amp;diff=13610&amp;oldid=prev</id>
		<title>Wiki: ページの作成:「== 概要 == タプルとは、複数の異なる型の値を1つの複合型にまとめて管理することができる。&lt;br&gt; タプルの各要素は異なる型を持つことができるのが特徴である。&lt;br&gt; &lt;br&gt; Rustのタプルは固定長であり、1度宣言されるとサイズを変更することができない。&lt;br&gt; &lt;br&gt;&lt;br&gt;  == タプルの定義 == タプルを作成するには丸括弧()を使用する。&lt;br&gt; この中に、カンマで…」</title>
		<link rel="alternate" type="text/html" href="https://mochiu.net/index.php?title=Rust%E3%81%AE%E5%9F%BA%E7%A4%8E_-_%E3%82%BF%E3%83%97%E3%83%AB&amp;diff=13610&amp;oldid=prev"/>
		<updated>2025-11-29T18:41:18Z</updated>

		<summary type="html">&lt;p&gt;ページの作成:「== 概要 == タプルとは、複数の異なる型の値を1つの複合型にまとめて管理することができる。&amp;lt;br&amp;gt; タプルの各要素は異なる型を持つことができるのが特徴である。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; Rustのタプルは固定長であり、1度宣言されるとサイズを変更することができない。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;  == タプルの定義 == タプルを作成するには丸括弧()を使用する。&amp;lt;br&amp;gt; この中に、カンマで…」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 概要 ==&lt;br /&gt;
タプルとは、複数の異なる型の値を1つの複合型にまとめて管理することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
タプルの各要素は異なる型を持つことができるのが特徴である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
Rustのタプルは固定長であり、1度宣言されるとサイズを変更することができない。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== タプルの定義 ==&lt;br /&gt;
タプルを作成するには丸括弧()を使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
この中に、カンマで要素を区切る。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
let タプル名 = (要素1, 要素2, 要素3, ...) という形になる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
また、空のタプルを作成するには、丸括弧()のみで宣言する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 fn main() {&lt;br /&gt;
    let t1 = (1, 3, 5, 3, 7, 5);&lt;br /&gt;
    let t2 = (2, 7, 8, 3, 9, 1);&lt;br /&gt;
    let t3 = ();&lt;br /&gt;
 &lt;br /&gt;
    println!(&amp;quot;{:?}&amp;quot;, t1);&lt;br /&gt;
    println!(&amp;quot;{:?}&amp;quot;, t2);&lt;br /&gt;
    println!(&amp;quot;{:?}&amp;quot;, t3);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 (1, 3, 5, 3, 7, 5)&lt;br /&gt;
 (2, 7, 8, 3, 9, 1)&lt;br /&gt;
 ()&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
タプルの要素にアクセスするには、ドット記法とインデックスを使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
インデックスは0から始まる。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 fn main() {&lt;br /&gt;
    let t = (10, 20, 30, 40, 50, 60, 70, 80, 90, 100);&lt;br /&gt;
    println!(&amp;quot;{}&amp;quot;, t.2);&lt;br /&gt;
 &lt;br /&gt;
    // スライスは直接サポートされていないため、必要な要素を個別に取得する&lt;br /&gt;
    let slice = (t.3, t.4, t.5, t.6, t.7);&lt;br /&gt;
    println!(&amp;quot;{:?}&amp;quot;, slice);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 30&lt;br /&gt;
 (40, 50, 60, 70, 80)&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
要素が1つだけのタプルを作成する場合も、通常通り丸括弧を使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 fn main() {&lt;br /&gt;
    let x = (200,);&lt;br /&gt;
    let y = (300,);&lt;br /&gt;
    println!(&amp;quot;{:?}&amp;quot;, x);&lt;br /&gt;
    println!(&amp;quot;{:?}&amp;quot;, y);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 (200,)&lt;br /&gt;
 (300,)&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Rustのタプルは最大12要素まで標準的なトレイトが実装されている。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;異なる型の要素を混在させることができる。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 // 例&lt;br /&gt;
 let t = (1, &amp;quot;hello&amp;quot;, 3.14);&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;要素へのアクセスはインデックス演算子 [] ではなく、ドット記法 &amp;lt;code&amp;gt;tuple.0&amp;lt;/code&amp;gt; を使用する。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;また、スライス操作は直接サポートされていない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== タプルの操作 ==&lt;br /&gt;
&amp;lt;u&amp;gt;※注意&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;Rustのタプルには、Pythonの`index()`や`count()`のようなメソッドは存在しない。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;u&amp;gt;タプル同士の結合演算子 + は存在しないため、結合したい場合は新しいタプルを作成する必要がある。&amp;lt;/u&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== タプルの分解 ====&lt;br /&gt;
タプルの要素を個別の変数に分解することができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では、タプルの各要素を変数に代入している。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 fn main() {&lt;br /&gt;
    let t = (1, 2, 4, 6, 8);&lt;br /&gt;
    let (a, b, c, d, e) = t;&lt;br /&gt;
    println!(&amp;quot;a = {}, b = {}, c = {}, d = {}, e = {}&amp;quot;, a, b, c, d, e);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 a = 1, b = 2, c = 4, d = 6, e = 8&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
必要な要素のみを取得し、残りを無視する場合は &amp;lt;code&amp;gt;_&amp;lt;/code&amp;gt; (アンダースコア) を使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 fn main() {&lt;br /&gt;
    let t = (1, 2, 4, 6, 8);&lt;br /&gt;
    let (first, _, third, _, _) = t;&lt;br /&gt;
    println!(&amp;quot;first = {}, third = {}&amp;quot;, first, third);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 first = 1, third = 4&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== タプルと可変性 ====&lt;br /&gt;
Rustのタプル自体はイミュータブル(不変)だが、&amp;lt;code&amp;gt;mut&amp;lt;/code&amp;gt; キーワードを使用することにより、要素を変更可能にできる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では、可変タプルの要素を変更している。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 fn main() {&lt;br /&gt;
    let mut t = (1, 2, 3);&lt;br /&gt;
    println!(&amp;quot;{:?}&amp;quot;, t);&lt;br /&gt;
 &lt;br /&gt;
    t.0 = 100;&lt;br /&gt;
    t.1 = 200;&lt;br /&gt;
    println!(&amp;quot;{:?}&amp;quot;, t);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 (1, 2, 3)&lt;br /&gt;
 (100, 200, 3)&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 異なる型を持つタプル ====&lt;br /&gt;
Rustのタプルは異なる型の要素を格納できる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では、整数、文字列、浮動小数点数を1つのタプルに格納している。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 fn main() {&lt;br /&gt;
    let t = (42, &amp;quot;hello&amp;quot;, 3.14, true);&lt;br /&gt;
    println!(&amp;quot;{:?}&amp;quot;, t);&lt;br /&gt;
    println!(&amp;quot;整数: {}, 文字列: {}, 浮動小数点数: {}, 真偽値: {}&amp;quot;, t.0, t.1, t.2, t.3);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 (42, &amp;quot;hello&amp;quot;, 3.14, true)&lt;br /&gt;
 整数: 42, 文字列: hello, 浮動小数点数: 3.14, 真偽値: true&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== タプルの活用 ==&lt;br /&gt;
==== 関数の複数の戻り値 ====&lt;br /&gt;
タプルを使用すれば、関数から複数の値を返すことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
以下の例では、関数が3つの値をタプルとして返している。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 fn get_values() -&amp;gt; (i32, i32, i32) {&lt;br /&gt;
    (10, 20, 30)&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 fn main() {&lt;br /&gt;
    let (x, y, z) = get_values();&lt;br /&gt;
    println!(&amp;quot;x = {}, y = {}, z = {}&amp;quot;, x, y, z);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 x = 10, y = 20, z = 30&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== タプルの比較 ====&lt;br /&gt;
タプルは要素が同じ型であれば比較演算を行うことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
比較は左から順に行われ、最初に異なる要素で結果が決まる。&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;rust&amp;quot;&amp;gt;&lt;br /&gt;
 fn main() {&lt;br /&gt;
    let t1 = (1, 2, 3);&lt;br /&gt;
    let t2 = (1, 2, 4);&lt;br /&gt;
    let t3 = (1, 2, 3);&lt;br /&gt;
 &lt;br /&gt;
    println!(&amp;quot;t1 == t2: {}&amp;quot;, t1 == t2);&lt;br /&gt;
    println!(&amp;quot;t1 == t3: {}&amp;quot;, t1 == t3);&lt;br /&gt;
    println!(&amp;quot;t1 &amp;lt; t2: {}&amp;quot;, t1 &amp;lt; t2);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // 出力&lt;br /&gt;
 t1 == t2: false&lt;br /&gt;
 t1 == t3: true&lt;br /&gt;
 t1 &amp;lt; t2: true&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:Rust]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
</feed>