中小企业网站制作方法,桂林景区网站策划,移动互联网开发作业,更改wordpress代码安装及环境配置 特点#xff1a;安全#xff0c;性能#xff0c;并发rust源配置RLS安装cargo rust管理工具#xff0c;该工具可以愉快方便的管理rust工程 #!/bin/bash
mkdir learn
cd learn
cargo init ## 该命令会在当前目录下初始化一个## 目录下会出现一个Cargo.toml文…安装及环境配置 特点安全性能并发rust源配置RLS安装cargo rust管理工具该工具可以愉快方便的管理rust工程 #!/bin/bash
mkdir learn
cd learn
cargo init ## 该命令会在当前目录下初始化一个## 目录下会出现一个Cargo.toml文件这是Cargo的配置文件## 还有一个src目录目录中包含一个main.rs的初始文件
cargo run ## 命令会编译并运行程序
cargo build ## 编译工程变量与函数 函数定义 fn main(){} fn main(){let world world;println!(hello, {}!, world);
}
//该例子中可以看出来变量定义使用关键字 let字符串格式化中的占位符采用 {} let 关键字用于引入一个变量占位符 {}在Rust中比较通用将变量转化为字符串这里的变量可以是数值或者字符串。返回值-fn main() {let x:i32;let y:i32;x 10;y 5;println!(x {}, y {}, x, y);println!(add(x, y) {}, add(x,y));
}fn add(x:i32, y:i32) -i32{xy// return xy;
} 变量声明 let val:i32 1 在rust中类型定义采用 var: type的形式fn foo(_x :static str) - static str{world
}
fn main(){println!(hello, {}!, foo(bar));
} 静态字符串变量 static str注意在rust中str是关键字不能用作变量名let (x,y) (5, a)
// 类型分别是i32char 默认情况下Rust中的一切都是不可变的也就是说变量定义后不可改变其值下面这段代码编译不会通过。let x:i32 10;
x 6;
// ^^^^^ cannot assign twice to immutable variable 如果要改变变量声明时需要加上mut关键字let mut x:i32 10
x 6 字符串Rust中存在两种字符串类型str和String。 str: 字符串切片固定大小的不可变的UTF-8字节序列。let x hello world!;
let y:str hahahhahahah; String对象是可变的可以用String::from初始化该类型let x String::from(“Hello, World”);
let y: String String::from(“Isn’t it a wonderful life?);{let mut s1 :str s1 is str;let mut s2 :String String::from(s2 is String);println!({}, {}, s1, s2);// s1 is str, s2 is Strings1 s1 is changed;s2 String::from(s2 is changed);println!({}, {}, s1, s2);// s1 is changed, s2 is changed
} 数字 i8 i16 i32 i64u8 u16 u32 u64isize usizef32,f64数组let x [1, 2, 3];
let y: [i32; 3] [4, 5, 6]; 数组不常使用rust中vector更为常见let x vec![1, 2, 3];
let y: Veci32 [4, 5, 6]; 元组 有序的、不可变的对象列表 let x (5, A);
let y : (i32, char) (12, c);
let v x.0 // v 5
let a y.1 // a cRust中的所有权 所有权 Rust中每个变量对绑定到它上的值有所有权。Rust中堆上的每个值都有一个所有者变量当所有者超出作用域时该值将被丢弃// String的长度是可变的分配在堆中所以这里的会发生所有权移动。
// 在Rust中这个过程称之为移动move即原本x的值移动到了y上x失效了。
fn main(){let x String::from(hello); // x是hellolet y x; // y是“hello”这时x已经失效println!(x is {}, f(x) is {},x, y); // 会出错因为x失效了。
}借用 任何借用的有效期都不能超过原始所有者的作用域任何时刻都能够不可变的借用一个资源许多次任何时刻都能够可变的借用一个资源一次方法关联函数 impl作为实现结构体方法的关键字方法的输入参数中第一个是self。调用采用.impl范围内输入参数没有self的方法即为关联函数。调用使用:关联函数经常被用作返回一个结构体新实例的构造函数。下面的例子中Square即为Rect的关联函数。每个Struct允许多个impl块// 定义一个结构体
struct Rect{width: i32,length: i32,
}// 方法
impl Rect{fn Area(self) - i32{self.width * self.length}}// 关联函数
impl Rect{ fn Square(w:i32) - Rect{Rect{width :w,length: w,}}
} 转载于:https://www.cnblogs.com/gexin/p/10941227.html