「Rust」の版間の差分
削除された内容 追加された内容
s/データ/データー/3 https://ja.wikipedia.org/wiki/%E9%95%B7%E9%9F%B3%E7%AC%A6#%E9%95%B7%E9%9F%B3%E7%AC%A6%E3%82%92%E4%BB%98%E3%81%91%E3%82%8B%E6%B5%81%E5%84%80%E3%83%BB%E4%BB%98%E3%81%91%E3%81%AA%E3%81%84%E6%B5%81%E5%84%80 タグ: 2017年版ソースエディター |
→変数とミュータブル・イミュータブル: let と mut の混同。同じ変数名での宣言によって、それまで変数に束縛されていた値への参照がなくなります。 タグ: 2017年版ソースエディター |
||
92 行
=== 変数とミュータブル・イミュータブル ===
Rustでは、変数を宣言するにはキーワード '''let'''を使います
ディフォルトで [[#ミュータブル|ミュータブル]](''Mutable'';
;[https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=9032ae8999c6cb3bf5412988320e50d7 hello-variables.rs]:<syntaxhighlight lang=rust highlight=2 line>
105 ⟶ 106行目:
</syntaxhighlight>
:2行目の<syntaxhighlight lang=rust inline>let hello : &str = "Hello, world!";</syntaxhighlight>が変数宣言です<ref>文字リテラルであることを強調するなら<syntaxhighlight lang=rust inline>let hello : &'static str = "Hello, world!";</syntaxhighlight>とすべきだったかもしれません。</ref>。
::&str(文字列のスライスのリファレンス
::Rustには強力な[[#型推論|型推論]]があり多くの場合不要ですが、<code>let 変数名 : 型名</code>の書式で型を伴い変数宣言することも出来ます。
Rustにおいて「定数」は, const 宣言された定数や, static 宣言されかつ mut で修飾されていない変数が相当します。
▲let をつけない場合には作成後に「不変」と聞くと、C言語などを知っている人は「定数」を思い浮かべるかもしれません。ですが、rustにおける「定数」については const キーワードが別途、存在しています。
==== 型推論 ====
Rust では、変数宣言が初期値を伴っていた場合、変数の型を省略することができ、
;[https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=8955af79cf1040655600a846791d149b hello-type-inference.rs]:<syntaxhighlight lang=rust highlight=2 line>
fn main() {
151 行
==== ミュータブル ====
代入
;[https://play.rust-lang.org/?version=nightly&mode=debug&edition=2021&gist=f795ca7bd93cb23a75f77654cee1068b hello-mutable.rs]:<syntaxhighlight lang=rust highlight=2 line>
fn main() {
165 行
</syntaxhighlight>
====
同一
同じ型である必要はありません。ミュータブルであるかイミュータブルであるかも問いません。
;[https://play.rust-lang.org/?version=stable&mode=debug&edition=2021&gist=ab6955620ffb9be1841da5f925a16803 同じ変数名での宣言]:<syntaxhighlight lang=rust highlight='2,4' line>
fn main() {
let hello : &str = "Hello, world!";
println!("{}", hello);
let hello =
println!("{}", hello);
}</syntaxhighlight>▼
▲</syntaxhighlight>
;実行結果:<syntaxhighlight lang=text>
Hello, world!
154649
</syntaxhighlight>
|