青少年JS開発者が学ぶRust-(3)


一般的なプログラミングコンセプト


へんすう

let,constキーワードを用いると,両キーワードは基本的に不変性を有する.
値を変更するには、mutを貼り付けるか、shadowingを使用します.

let vs const

letconstはいずれも不変性を有し、constmutのキーワードを使用できません.宣言時にタイプを指定する必要があります.
なお、const変数は大文字と下線の_を用いることが国の規定である.
ex)
const MAX_POINTS: u32 = 1000_000; 
/// 밑줄은 숫자 가독성 높일 때도 사용할 수 있음 (오?)

mut vs Shadowing


まず影が何なのか見てみましょう
fn main() {
    let x = 5;
    let x = x + 1;
    let x = x * 2;
    println!("x is {}", x); // x is 12
}
x値を用いて,letで新宣言のxに上書きした.
では、mutと何が違うのでしょうか.
まずletのキーワードで再宣言するのも違います
型にこだわらない.
let spaces = "   ";
let spaces = spaces.len(); // 3

let mut spaces = "   ";
spaces = spaces.len(); // compile error!

データ型


スカラ


レスターは、次の4つのタイプのスカラータイプを定義します.
  • integer
  • floating point number
  • Bolleans
  • charaters
  • まず整数タイプを見てみましょう。


    浄水タイプは、u8u16u32u64およびi8i16i32i64である.
    貯蔵可能範囲:uは0 ~ 2^(n)-1、iは-2^(n-1) ~ 2^(n-1)-1である.
    すなわち、u8は0〜255、u16は0〜65535、u32は0〜4294967295である.u64は、広い範囲をカバーすることができる.
    rustは基本的にu32タイプをdefaultとして使用し、一般的に使用されます.

    次に小数点タイプ

    f32およびf64、rustデフォルトf64

    ボレインズのパス...文字列。


    英語だけでなく、韓国語と日本語、さらには表情記号まで保存できる.

    ふくごう


    複合型は複数の値のタイプと見なすことができる.
    基本的にrustがサポートする複合タイプはtupleと配列である.
    基本的に他の言語と似ています.
    長さが確定し、削除または追加する内容がほとんどない場合を除きます.
    ベクトルを書くのは配列よりいいです.(これからお聞きしましょう)
    fn main() {
        let tup: (i32, f64, u8) = (500, 6.4, 1);
        let (x, y, z) = tup;
        
        println!("x : {}", tup.0); // 500
        println!("y : {}", y); // 6.4
        
        let a: [i32; 3] = [1,2,3]; // 타입 지정은 이렇게
        let b = [3;5]; // [3,3,3,3,3]
    }
    配列から無効な要素にアクセスすると、
    コンパイルできますが、実行中にエラーが発生しました.

    n.関数


    関数名Snakeシェル(ex.process mint)
    関数には必ず変数のタイプを明記します.

    重要!構文vs式


    構文には値が返されず、式には最終結果として戻り値があります.
    関数の戻り値は名前を付けませんが、タイプを指定する必要があります.
    fn main() {
        let y = 6; // 구문
        let x = (let y = 6); // let y = 6는 구문이라 return이 없어서 error
        let x = 5;
        
        // 코드 블록 또한 표현식이다. 즉 표현식과 리턴값이 있다는건데
        // 바로 x + 1 와 같이 세미클론이 붙지 않은 저 친구가 표현식임
        let y = {
            let x = 3;
            x + 1 // 세미클론 없는 것에 주목
        }
    }
    もちろんreturnを加えると、他の言語と似ています.
    rustは、関数の最後の式値を直接関数の戻り値として使用できます.
    つまり、次の2つの関数は正常に動作します.
    fn five() -> u32 {
        return 5;
    }
    
    fn six() -> u32 {
        6
    }

    フローコントロール


    ドアが


    他の言語と同じ
    式を使用してのみ、次の変数を初期化できます.
    let x = if condition {
        5
    } else {
        6
    };
    逆に、式が返すタイプは同じでなければなりません.

    複文


    rustはこの3つのタイプにloop、while、forを提供します.
    loopは基本的に無条件の無限ループである.
    breakとともに返される式を書くことで中断できます.
    fn main() {
        let mut counter = 0;
        
        let rsult = loop {
            counter += 1;
            
            if counter == 10 {
                break counter * 2; // 20
            }
        };
    }
    for..in構文も作成できます
    ミニチュアをよく使うと言ってそれを使いましょう