rust语言-学习
数据类型定义及调用
整型(i32)、浮点型(i64)、字符型、布尔型
零维、一维、二维、多维
高维可以理解为低维的嵌套
变量使用必须定义
不可变变量不可二次赋值,可变变量可以二次赋值
usize 根据系统情况自动选择u32还是u64
vec<i32> = vec![1,2,3]
vec<f64> = vec![1.0,2.0,3.0]
https://course.rs/basic/ownership/ownership.html
:: 是一种调用操作符
数据类型转换
所有权、借用、生命周期
只有矩阵可以使用矩阵的运算,数组不可以使用矩阵的运算
变量定义之后,若未使用,则会报错。
报错
Syntax Error: expected SEMICOLON
缺少分号
数据类型转换需要注意的地方
rust的move/borrow/copy语义--内存管理
.clone() //Return a copy of the value
// --error--
// borrow of moved value: "" value borrowed here after move
// 下面会将vx1 move 至mx2,此后无法再次使用vx1,否则会报如上错误
let vx1 = vec![vec![1,2,3,4],vec![5,6,7,8]];
let mx2 = py_matrix(vx1);
// 使用.clone()方法将vx1 copy 至mx2,再使用vx1,则不会报如上错误
let vx1 = vec![vec![1,2,3,4],vec![5,6,7,8]];
let mx2 = py_matrix(vx1.clone());
//---------------------------------------------
// 下面会将mx2 move 至mx3,此后无法再次使用mx2,否则会报如上错误
let vx1 = vec![vec![1,2,3,4],vec![5,6,7,8]];
let mx2 = py_matrix(vx1.clone());
let mx3 = vec![mx2];
// 使用.clone()方法将mx2 copy 至mx3,再使用mx2,则不会报如上错误
let vx1 = vec![vec![1,2,3,4],vec![5,6,7,8]];
let mx2 = py_matrix(vx1.clone());
let mx3 = vec![mx2.clone()];
//---------------------------------------------
Matrix乘以标量,或者除以标量之后,也会move
rust将矩阵转换为vector
Matrix.to_vec()
可以打印的数据类型
vec<i32>
vec<f64>
Matrix // peroxide::fuga::Matrix
无法打印的数据类型
vec<vec<{integer}>>
vec<Matrix>
new()和.push()方法--可以不必像matlab一样预分配空间
let mut final_sigma_r = Vec::<Vec<Matrix>>::new();
let mut _final_sigma_r = Vec::<Matrix>::new();
final_sigma_r.push(_final_sigma_r);
使本路径下的所有文件可以使用自定义函数
use super::*;

浙公网安备 33010602011771号