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::*;
posted @ 2022-09-09 21:21  Nazorine  阅读(105)  评论(0)    收藏  举报