rust 學習記錄(一)

芹澤,發表於2020-12-11

搭建環境

     菜鳥教程(注意務必要有visual c++ tools)
基本語法

   佔位符{}

   輸出 這個功能我一般用來除錯  在程式執行的某個階段輸出一段資訊讓我判斷程式的走向以及錯誤
   rust的輸出有 print!("")和println!()  注意記得寫 號。 其區別就是一個會換行一個不換行 這些沒啥好說的。

   重點是 rust的佔位符就有點和我們平時學習c語言 c++不一樣了 ,用是{}這兩個符號。

print!("test is {}",a)
println!("test is {}",b)

菜鳥教程上還有一種操作 print!("test is {0} and {0}",a) 這種方式可以用於重複輸出 它是將a當作一個陣列,0標識下表為0

let a = 4;
println!("test is {0},{0}",a)

但是經過實驗以下兩種操作行不通,果然騷操作在rust上會騷斷腿。

let a = "123";
println!("test is {0},{1},{2}",a);
//會報錯


let a = [1,2,3];
println!("test is {0},{1},{2}",a);
//會報錯

/**`[{integer};4]`不實現`std::fmt::Display`

**沒有為`[{integer};4]實現特徵“std::fmt::Display”`

**在格式字串中,您可以使用`{:?}`(或{:?}為了漂亮的印刷品)

**`std::fmt::Display::fmt`rustcE0277所需

**主要單位:盧比(5,40):錯誤源於此處的巨集
**/

實際上rust {0},{1} 代表的是後面的所有資料為一個陣列 ,並不是吧單個a看成一個陣列
 

let a = "123";
let b = "1";
let c = "3";
println!("test is {0},{1},{2}",a,b,c);

//他是吧 a,b,c 看成一個[a,b,c]的陣列   
//所以就可以做如下操作

println!{"test is {1},{1},{1}",a,b,c};

輸出 "test is 1,1,1"

佔位符 {:?}
個人理解為:會把構造體的形式輸出出來;
 

pub struct gradle{
    isHead:bool,
    head:String,
    list:i32
}


let a:gradle = gradle{
    ishead:true,
    head:"123"
    list:32
}

println!("{:?}",a);

輸出: gradle{ishead:true,head:"123",list:32}

佔位符{name}
這個看程式碼應該很好理解;

printlin!("{value},{a}",value="123",a="4");

內容暫時記錄到這其他的再更新。

相關文章