これは、例によるRustの翻訳に関する一連の記事の第2部です。 最初の部分は
ここで読むことができ
ます 。
続行しますか?
内容
- 表現
- 支店オペレーター
- 蝶番
- whileループ
- forループおよび範囲関数
- 機能
1.式
Rustでは、ほとんどすべてのステートメント(ステートメント)も式です。つまり、何らかの結果を返すことができます。 この動作は必ずしも必要ではないため、何も返さないでください
; add
; 最後まで。
ブロック内の式は
r-valuesとして使用でき、後者は
l-valueとして割り当てられ
ます 。
* ここで読む右辺値と左辺値とは何ですか。ただし、ブロック内の最後の式がセミコロンでダウンロードされた場合、結果は空のタプル
()に等しくなります。
fn main() { let x = 5u; let y = { let x_squared = x * x; let x_cube = x_squared * x;
2.分岐演算子
if-else
はCに似ています。 Cとは異なり、論理条件は括弧で囲むべきではなく、各条件の後に中括弧が必要です。
if-else
も式です。 また、Rustのタイプセーフのため、すべてのブランチは同じタイプの値を返す必要があります。
fn main() { let n = 5i; if n < 0 { print!("{} is negative", n); } else if n > 0 { print!("{} is positive", n); } else { print!("{} is zero", n); } let big_n = if n < 10 && n > -10 { println!(", and is a small number, increase ten-fold");
3.ループ
Rustキーワード
loop
は、無限ループを作成します。
break
ステートメントを使用すると、ループをいつでも終了できますが、
continue
は残りの反復をスキップして、実行を再開します。
fn main() { let mut count = 0u; println!("Let's count until infinity!");
3.1ネストとタグ
ループはネストできます。 このような場合、ラベル
'label
含める必要があり、
break/continue
ステートメントはこのラベルで記述されます。
fn main() { 'outer: loop { println!("Entered the outer loop"); 'inner: loop { println!("Entered the inner loop");
4. whileループ
whileの条件がtrueの間、ループの本体が実行されます。
while
を使用してfizzbuzzを書きましょう。
fn main() {
5. forループおよび範囲関数
for in
構文を使用して、
Iterator
と遅延ジェネレーターを反復処理できます(これについては後で説明します)。
range
関数は、最も一般的な反復子の1つです。
range(a, b)
は
range(a, b)
から
b-1までの値を生成し、ステップを1つずつ変更します。
whileの代わりに
for
を使用
for
てfizzbuzzを書きましょう。
fn main() {
6.機能
関数は、
fnキーワードを使用して宣言されます。 引数には、変数などの型で注釈が付けられます。 また、関数が値を返す場合、矢印
->の後に戻り値の型を指定する必要があります。
関数の本体の最後の式が戻り値として使用されます。または、
return
を使用して、内部ループや条件ステートメントからでも、関数から値を早期に
return
ことができます。
関数を使用してfizzbuzzを書き換える!
6.1未使用の関数
コンパイラは、未使用の関数を警告する
dead_code
lintを提供します。 属性
#[allow(dead_code)]
を追加して、通知を無効にすることができます。
fn used_function() {}
実際のプログラムでは、「デッドコード」を排除する必要があることに注意してください。 これらの例では、デモンストレーションに使用します。
おわりに
この言語の詳細については、グーグルグループ
Rust in Russianに参加してください。
Githubで翻訳を支援できます:
github.com/eg0r/rust-by-exampleすべてのコメント、エラー、または不正確なものをメールで送信してください。