提交 f1bfb772 编写于 作者: J jackymao

add primitives

上级 6e4dfc04
{
"type": "code_options",
"author": "jacky_rust",
"author": "jackymao_com",
"source": "rust_data_type.md",
"notebook_enable": false,
"exercise_id": ""
......
......@@ -6,7 +6,8 @@
Rust 语言设计者对于在内存中操作数据的要求非常高,比如在官方首页的 "Why Rust" 一节,提到了要做到 "memory-efficient" 和 "memory-safe",就是内存高效和内存安全,基于这样的设计目标,Rust 的数据类型设计非常精细。所以深入理解 Rust 类型是学好 Rust 编程的基础。
<!-- 学习 Rust 类型,需要了解这个类型保存在内存的什么地方(栈,堆,静态数据区 等等),占用多大空间(特别是在栈上占用多少空间),怎么操作(如 push, push_str, insert, 等等)。 -->
学习 Rust 类型,需要了解这个类型保存在内存的什么地方(栈,堆,静态数据区 等等),占用多大空间(特别是在栈上占用多少空间),怎么操作(如 push, push_str, insert, 等等)。
下面简要说明一下具体类型。
Rust 的标量类型(scalar type) 是指表示为单一值的类型,有:
......
......@@ -2,7 +2,9 @@
"node_id": "rust-f71cc0b141fc44be94eb203532dcb0ac",
"keywords": [],
"children": [],
"export": [],
"export": [
"primitives.json"
],
"keywords_must": [],
"keywords_forbid": []
}
\ No newline at end of file
{
"type": "code_options",
"author": "jackymao_com",
"source": "primitives.md",
"notebook_enable": false,
"exercise_id": ""
}
\ No newline at end of file
# Rust 原生类型
Rust 提供的原生类型有:
标量类型:
- 带符号整数 i8, i16, i32, i64, i128 和 isize
- 无符号整数 u8, u16, u32, u64, u128 和 usize
- 浮点数 f32, f64
- 字符 char, 每个字符占用 4 字节
- 布尔值 true 或 false
- 单元类型,即 ()
组合类型
- 数组 array 如 [1, 2, 3]
- 元组 tuple 如 (1, true)
- 切片 slice
以下不会出现编译错误的是
## 答案
```rust
fn main() {
let a = 42;
let a = 4294967296_i64;
let mut s = "12";
let s = "true";
let s = false;
}
```
## 选项
### 变量类型不可变
```rust
fn main() {
let mut mutable = 12;
mutable = 21;
mutable = true;
}
```
### 变量类型 u32 不能出现负值
```rust
fn main() {
println!("1 + 2 = {}", 1i32 + 2);
println!("1 - 2 = {}", 1u32 - 2);
}
```
### 切片是不定长类型,只能以引用形式赋值或使用。
```rust
fn main() {
let xs: [i32] = [1, 2, 3, 4, 5];
let ys: [i32; 500] = [0; 500];
}
```
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册