Rust程式語言,簡單入門1

2021-09-27 11:36:47 字數 4070 閱讀 3892

學習程式設計第一步,列印hello, world!

檔名:main.rs

fn main()

fn main() {}

主函式,無返回值,rust程式入口。

fn 定義函式。

函式主體用大括號括起來{}。

在函式簽名中,有引數,必須宣告每個引數的型別。

這是rust設計中的乙個故意決定:在函式定義中需要型別注釋。

(空格1空格2空格3空格4)println!("hello, world!");

rust風格是縮排四個空格,而不是製表符。

println!呼叫rust巨集。

如果改為呼叫函式,則將其輸入為println(不帶!)。

巨集是一種編寫**的方法,在預編譯階段進行處理。巨集不僅僅是替換內容和展開,還可以像功能函式一樣,接收引數、呼叫其他的巨集。

比c巨集更強大,稱為元程式設計,巨集只是允許您發明自己的語法並編寫編寫更多**的**。

rust預設情況下變數是不可變的,可以選擇使變數可變。

fn main() ", x);

x = 6;再次賦值,報錯

println!("the value of x is: {}", x);

}fn main() ", x);

x = 6;賦值,new了新變數

println!("the value of x is: {}", x);

}常量可以在任何範圍內宣告,包括全域性範圍,不僅是不可變的,它們始終是不可變的,只能設定為常量表示式。

const max_points: u32 = 100_000;

let 宣告變數,可以更改變數的型別

mut 使變數可變,不可改型別

const 宣告常量

fn main() ", x);

}

rust中的整數型別

length

signed

unsigned

8-bit

i8u8

16-bit

i16u16

32-bit

i32u32

64-bit

i64u64

128-bit

i128u128

arch

isizeusize

rust中的整數進製表示

number literals

example

decimal

98_222

hex0xff

octal

0o77

binary

0b1111_0000

byte (u8only)

b'a'

浮點型別

rust對於浮點數也有兩種原始型別,即帶小數點的數字。rust的浮點型別為f32f64,大小分別為32位和64位。預設型別是f64因為在現代cpu上,它的速度與之大致相同,f32但精度更高。

fn main()
布林型別

與大多數其他程式語言一樣,rust中的布林型別具有兩個可能的值:truefalse。布林值的大小為1個位元組。rust中的布林型別使用指定bool

fn main()
字元

rust的char型別是該語言最原始的字母型別,下面的**顯示了一種使用它的方式。(請注意,char文字是用單引號指定的,而字串文字是使用雙引號的。)

fn main()
rust的char型別為4個位元組,代表unicode標量值,這意味著它可以代表的不僅僅是ascii。

復合型別可以將多個值組合為一種型別。rust有兩種原始的復合型別:元組和陣列。

元組型別

元組是一種將多種型別的其他一些值組合為乙個復合型別的一般方法。元組的長度是固定的:宣告後,它們的大小將無法增長或縮小。

fn main()
fn main() ", y);

}

通過使用句點(.)和要訪問的值的索引直接訪問元組元素。

fn main()
與大多數程式語言一樣,元組中的第乙個索引為0。

陣列型別

收集多個值的另一種方法是使用陣列。與元組不同,陣列的每個元素都必須具有相同的型別。rust中的陣列與某些其他語言中的陣列不同,因為rust中的陣列具有固定的長度

fn main()
let months = ["january", "february", "march", "april", "may", "june", "july",

"august", "september", "october", "november", "december"];

let a: [i32; 5] = [1, 2, 3, 4, 5];i32是每個元素的型別。
let a = [3; 5];

let a = [3, 3, 3, 3, 3];

相等,第一種更加簡潔。

索引訪問陣列的元素

fn main()
表示式,大坑!!!

fn main() ;

println!("the value of y is: {}", y);

}

這個塊叫做表示式,返回 結果 值。

在rust中,函式的返回值與函式主體塊中最終表示式的值同義。您可以通過使用return關鍵字並指定乙個值從函式中提前返回,但是大多數函式隱式返回最後乙個表示式。

fn five() -> i32 

沒有命名返回值,但確實在箭頭(->)後宣告了它們的型別。

fn main() ", x);

}

注釋

// hello, world

// 單行注釋

fn main()  else 

}

fn main()  else if number % 3 == 0  else if number % 2 == 0  else 

}

fn main()  else ;

println!("the value of number is: {}", number);

}//因為if是表示式,所以我們可以在let 語句的右側使用它

三種迴圈:loopwhile,和for

fn main() 

}//遇到錯誤跳出,或使用break

fn main() !", number);

number -= 1;

}println!("liftoff!!!");

}

fn main() ", element);

}}//這裡for類似python

Rust 語言新人入門指南

首先,學習 rust 不能急躁。如果你抱著之前 1 天上手 python,2 天入門 go 的經驗和優越感來學習 rust 的話,你可能會遭遇嚴重的失敗感。如果你來自 haskell ocaml 等函式式語言社群,你會有相當的親切感。對於有豐富 c 開發經驗的同學來說,上手可能相對比較容易。了解 一...

ARM NEON 程式設計簡單入門1

neon是適用於arm cortex a系列處理器的一種128位simd single instruction,multiple data,單指令 多資料 擴充套件結構。從智慧型手機和移動計算 裝置到hdtv,它已被公認為是多 應用領域中最為優越的處理器之一。它採用專門設計,簡化了軟體在不同平台之間...

Swift程式語言1 快速入門

swift快速入門 按照傳統,在學習一門新語言時,第乙個程式應該是在螢幕上列印句子 hello,world 在swift中,只需要下面一行 println hello,world 如果你用c或者oc寫過 語法應該很熟悉。在swift,這行 是乙個完整程式。你無需import 匯入 乙個類似於inpu...