さびの原始型とデータ型


すべてのプログラミング言語は、基本的なユニットとタイプを持って、人間の言語は母音と子音で構成されています.プログラムのコードのすべての行を構成します.
この投稿では、Rustのデータ型について学びます.
どのような錆のタイプですか?
Rustは静的にタイプされた言語です.そして、それはコンパイル時にすべての変数のタイプを知らなければならないことを意味します.コンパイラは、私たちが提供した値に基づいてどのようなタイプを使用したいのか、またどのように使用するかを実際に推論することができます.Rustには2つのデータ型のサブセットがあります.錆の原始型とも呼ばれる.以下のようになります:
  • スカラー型
  • 複合タイプ
  • スカラー型


    スカラー型は1つの値を表します.Rustは4つの主要な型を持ちます:整数、浮動小数点数、booleans、文字.

  • 整数:-これは小数部のない数です.それらは全体の数を表すために使用されます.例えば、2、3、5 e . c.それらはまた、「int」と呼ばれます.錆では、int値の型を宣言する値が異なります.例は8ビット-> U 8 , 16ビット-> U 16です.彼らはこのように署名された
  • let negative_two: i8 = -2;
    
    またはこのように符号なし
    let two: u8 = 2;
    
    「I」はそれが署名されることを意味します、「U」はそれが符号なしであることを意味しますが、(すなわち、それは否定的であるかもしれません).数字はビットサイズで表され、私はあなたがそれらに慣れていない場合は“ビット”についての詳細を学ぶことをお勧めします.

  • 浮動小数点数:- Rustの浮動小数点型は、F 32とF 64です.これらはまた、数学の世界で😄. もちろん、数値(int)と浮動小数点数の基本的な数値演算を実行できますが、I 32番号とF 32の間の数値演算はできません.このような操作に対してI 32をF 32に変換しなければなりません.やってみましょう
  • let decimal_num: f32 = 8.4;
        let whole_num: i32 = 8;
    
        println!("The answer is {}", decimal_num + whole_num);
    
    
    これはエラーにコンパイルされます.I 32はF 32から異なるタイプとして扱われますが、私たち人間はまだ数字です.マシンコードでは、それらは異なります.我々のコードの誤りを直しましょう.
    let decimal_num: f32 = 8.4; //a floating-point number
        let whole_num: i32 = 8;
    
        println!("The answer is {}", decimal_num + whole_num as f32);
    
    
    これがコンパイルされ、その答えは16.4です.
  • Boolean型:-ほとんどのプログラミング言語では、Booleanには2つの可能な値があります.これはサイズ1バイトです.これはキーワードbool
    文字のタイプ:- Rustの本によると、-タイプは、-錆のchar型は、言語の中で最も原始的なタイプです.これらは単一引用符ではなく、二重引用符で指定されます.彼らは4バイトのサイズであり、インデックスのパターンは、通常、あなたがそれを考えるものではありません.
  • let single_char: char = 'c'; //a char type
    let single_string: &str = "c"; //a string slice
    
    

    複合型


    彼らは1つのタイプに複数の値をグループ化することができます.

  • タプル:1つの複合型にさまざまな種類の値の数をグループ化する一般的な方法です.彼らは固定長を持って、彼らは成長することはできませんまたはサイズで縮小.
    これは以下のタプルの例です.
  •   let two_values = (1, true);
        println!("pair is {:?}", two_values);
    

  • 配列:タプルとは異なり、配列は1つの型だけを持つことができます、すなわち、配列のすべての値は1つのタイプを持たなければなりません.それらは固定長で、インデックスを使ってアクセスできます.あなたが代わりにベクトルを使用することができます大人のリストをしたい場合.配列がスタックに格納されている間、ヒープにベクトルが格納されます.
  • let array_one = [2, 3, 5, 7]; //without a type, rust can infer the type of this array
    
    let array_two: [i32; 4] = [2, 3, 5, 7]; //this is the standard way for initialising an array
    println!("array {:?}", array_one);
    
    

    ジェネリックタイプ


    これは型ではありませんが、異なる種類の複数のコンテキストのコードを記述できるツールに似ています.これは最初に複雑に思えるかもしれませんが、コードをグループ化するのに最適なツールです.
    彼らがさびプログラミング言語への裸の基盤であるので、これがさびに関するタイプの若干の混乱を片付けたことを願っています.“錆本”をチェックアウトすることを忘れないでください、それはどのように錆でコードを学習を開始する素晴らしい本です.