首页 > 其他分享 >Hello Rust

Hello Rust

时间:2023-06-12 11:13:23浏览次数:40  
标签:dev Hello Rust println world hello rust

创建于2023-03-28 09:26

本笔记主要来自于 Rust 程序设计语言 中文版 [1.2],旨在记录个人学习过程中的重点和心得体会。在记录过程中,笔者会对文档中的某些内容进行摘抄或修改,并添加自己的注释或说明。如有不当之处,请指正。

Rust 文件通常是以 .rs 拓展名结尾,与其它语言不同,在 rust 中,使用的是下划线小驼峰的方式作为命名规范(需要注意的是,文件名不能出现特殊字符,例如空格),例如:hello_world

首先我需要创建一个文件夹由于存放我的 rust 代码,我就将它创建在用户下的 dev 目录吧,这是我用来存放与开发相关的代码:

mkdir ~/dev/rust/learn
cd ~/dev/rust/learn

目录创建好之后再来一个 hello_world.rs 文件,如何编辑它那就看我们的喜好了,我选择VsCode,你们也可以使用命令行,例如:'vim'

touch ./01print_hello_world.rs

rust 程序的入口文件通常都需要一个 main 函数,在 rust 程序执行的时候都会优先执行它,这和 Java 类似。

fn main() {
  println!("hello world!")
}

在我们代码写完之后可以使用 rust 提供的命令来编译它,编译完成后它会生成一个可执行文件,我们执行它的编译产物即可

# clover @ MacBook-Pro in ~/dev/rust/learn [9:34:11] 
$ rustc 01print_hello_world.rs

# clover @ MacBook-Pro in ~/dev/rust/learn [9:35:04] C:127
$ ./01print_hello_world
hello world!

程序剖析

在我上面的程序中,定了一个 main 函数它也被称为主函数,任何一个 rust 程序在运行的时候首先会执行它!我定义的这个 main 函数它没有返回值,也没有参数列表,如果存在参数,那么它需要被放在 () 里面。
另外需要注意一点是,无论是我定义的 main 函数,还是其它函数,函数的主体都需要被放在 {} 里面,这和其他大部分语言是一样的,例如 Java。通常我们把左花括号 { 和参数列表放在同一行,它们之间用一个空格隔开:

fn xxx() { }

rust 很贴心的提供了一个工具 rustfmt,可以格式化我们的代码风格,他不需要而外安装因为它被集成在 rust 发行版中

# clover @ MacBook-Pro in ~/dev/rust/learn [10:11:33] 
$ rustfmt 01print_hello_world.rs

注意点

  1. Rust 风格的缩进是使用4个空格而不是制表符(tab),这在其它语言基本是一致的,因为制表符可能导致一些工具出现问题。
  2. 为什么使用 println!() 而不是 println() ,因为在 Rust 中,! 意味着调用的是一个宏而不是一个普通函数,println() 不包含 ! 所以调用的是一个普通函数。宏的内容还需要我更深入的学习才能分享
  3. hello world! 是作为一个字符串参数传递给 println! ,接着 println! 会将其打印在终端。(好想吐槽,不能用单引号表示一个串字符,双引好难看)
  4. Rust 和 Java 一样,都是需要通过英文分号 ; 来表示一行代码的结束,大多数代码结束都是以 ; 结尾

标签:dev,Hello,Rust,println,world,hello,rust
From: https://www.cnblogs.com/CloverYou/p/17474453.html

相关文章

  • Hello Cargo
    创建于2023-03-3009:51本笔记主要来自于Rust程序设计语言中文版[1.3],旨在记录个人学习过程中的重点和心得体会。在记录过程中,笔者会对文档中的某些内容进行摘抄或修改,并添加自己的注释或说明。如有不当之处,请指正。Cargo是Rust的构建系统和包管理器(有些类似MAVEN和YA......
  • 0x00 Hello Go
    GO程序的基本结构Go语言的文件后缀是.go结尾,例如hello.goGo项目的文件目录通常是这样的:.└──src└──go_code└──learn项目名└──package1└──package2以下代码是一个helloworld程序的代码示例/***he......
  • HelloWorld
    HelloWorld随便新建一个文件夹,存放代码新建一个Java文件文件后缀为.javaHello.java[注意点]系统可能没有显示文件后缀名,我们需要手动打开编写代码编译javacJava文件,会生成一个class文件运行class文件,javaclass文件可能会遇到的情况每个单词的大小写不能......
  • hello-world7843 实验七 综合软件项目案例
    项目内容课程班级博客链接2023年春软件工程(2020级计算机科学与技术)这个作业要求链接实验七综合软件项目案例团队名称hello-world7843团队成员分工描述王*润:项目部署,绘制类图,设计开发满足用户实际需求的功能。王*:绘制顺序图以及E-R图,总结类图与源代......
  • Windows下Rust toolchain的切换
    在用运行命令cargoinstallcargo-eval的过程中,总是提示链接器错误。因为原先使用的rusttoolchain是GNU的,怀疑是GNU的链接器有问题,毕竟Windows下实际上还是MSVC最稳,所以尝试切换成MSVC,果然问题就解决了,cargo-eval成功安装。以下是步骤:下载VisualStudio。在VisualStudioIns......
  • Rust - 接口设计建议之灵活(flexible)
    Rust-接口设计建议之灵活(flexible)灵活(flexible)代码的契约(Contract)你写的代码包含契约契约:要求:代码使用的限制承诺:代码使用的保证设计接口时(经验法则):避免施加不必要的限制,只做能够兑现的承诺增加限制或取消承诺:重大的语义版本更改可导致其他代码出问题放......
  • Kettle - hello world
     Kettle下载页面:点这里Kettle版本:pdi-ce-9.4.0.0-343  流程概览  详细步骤1、首先打开Kettle的Spoon.bat2、在主对象树中选择转换3、然后在核心对象的输入中找到CSV文件输入并拖拽到右侧的转换1中,在输出中找到MicrosoftExceloutput并拖拽到右侧的转换1中4......
  • rust rocket读取自定义配置
    Rocket.toml[default.app]meili_url="http://host:port/"meili_master_key="key"main.rs#[derive(Serialize,Deserialize,Clone)]#[serde(crate="rocket::serde")]structAppConfig{ meili_url:String, meili_master_key:......
  • 从Rust想到C#
    近几年,RUST语言越来越受大家的喜爱,排除去一些跟风者,大部分的人喜欢RUST的内存安全性和高效的性能。但编译速度始终是它的短板。这几天,突然有一个想法,如果C#或者说.NET的编译器也做成RUST编译器那样,对每一行代码进行安全性检查,是否也可以像RUST一样安全呢? ......
  • atomic_enum rust 原子枚举类型
    https://docs.rs/atomic_enum/latest/atomic_enum/#[atomic_enum]#[derive(PartialEq)]enumCatState{Dead=0,BothDeadAndAlive,Alive,}letstate=AtomicCatState::new(CatState::Dead);state.store(CatState::Alive,Ordering::Relaxed);assert......