第1章 入门指南
~ > rustc --version
# rustc 1.74.1 (a28077b28 2023-12-04) (Arch Linux rust 1:1.74.1-1)
Install
Hello, World!
fn main(){
println!("Hello, world!");
}
// 1. 标准Rust风格使用4个空格而不是Tab来实现缩进。
// 2. Rust中所有以!结尾的调用都意味着你正在使用一个宏而不是普通函数。普通函数会以去掉!
// 3. 字符串作为参数传入了println!,并最终显示到了终端屏幕上。
// 4. 大部分的Rust代码行都会以分号来结尾。
编译完,怎么变大了这么多?
~/workspace/rust-project/CH01 > rustc --explain E0423
~/workspace/rust-project/CH01 > ll
总计 11M
drwxr-xr-x 2 bgzo bgzo 4.0K Jan 2日 22:40 ./
drwxr-xr-x 4 bgzo bgzo 4.0K Jan 2日 22:36 ../
-rwxr-xr-x 1 bgzo bgzo 11M Jan 2日 22:39 main*
-rw-r--r-- 1 bgzo bgzo 42 Jan 2日 22:40 main.rs
- 编译型 (预编译) 语言最好可以生成运行在不同平台的应用,正常无法看到源码;解释型语言需要在每一个运行的机器上都装有解释环境,正常都能看到源码;
Tip
为什么是 Ruby、Python或JavaScript 是动态语言?
- 动态类型系统
- 在这些语言中,变量的类型是在运行时确定的,而不是在编译时确定。这意味着你可以在运行时更改变量的类型,使得代码更加灵活。例如,你可以在同一个变量中存储不同类型的数据。
- 运行时类型检查
- 动态语言通常在运行时执行类型检查,而不是在编译时。这使得更容易进行一些灵活的操作,如动态创建对象或在运行时修改类的结构。
- 动态内存分配
- 这些语言允许在运行时分配和释放内存,而不需要在编译时明确指定。这带来了方便,但也需要开发者注意内存管理,以避免潜在的内存泄漏问题。
- 反射和元编程
- 动态语言通常支持反射,即在运行时检查和修改程序的结构。这使得编写更加灵活和动态的代码成为可能。
- 解释执行
- 这些语言通常使用解释器而不是编译器,允许代码在运行时逐行执行。这使得开发者可以更容易地进行交互式开发和测试。