Rust学习:HelloWorld

Rust学习:HelloWorld

  • HelloWorld
    • Rust语言简介
    • 主要特点
    • 先看程序
    • 分析程序

HelloWorld

Rust语言简介

Rust是一种系统编程语言,旨在提供内存安全、并发性和性能。它由Mozilla Research开发,旨在解决C和C++语言中的一些关键问题,特别是与内存安全相关的问题。Rust通过其所有权模型提供了内存安全而无需垃圾回收,这使其成为编写高效且可靠的系统程序的理想选择。

主要特点

  1. 内存安全: Rust的所有权、借用和生命周期机制可以在编译时防止诸如空指针解引用和数据竞争等常见错误。
  2. 并发编程: Rust提供了一系列并发编程工具,使得编写无数据竞争的多线程代码变得更加容易和安全。
  3. 零成本抽象: Rust的抽象不会引入运行时开销。这意味着Rust能够在不牺牲性能的情况下提供高级的抽象能力。
  4. 错误处理: Rust的错误处理机制,如ResultOption枚举,以及错误传播操作符?,使得错误的管理变得更加直观和一致。

先看程序

创建文件hello_world.ts,添加内容如下:

fn main() {println!("Hello World! My first Rust project.")
}

执行命令:

rustc hello_world.rs./hello_world

在这里插入图片描述

分析程序

首先呢,整个程序是很简单的一个 HelloWorld。现在我们看下在这个过程中,Rust 为我们做了什么。

同我常使用的 Java Go一致,我们也是存在一个main方法的。这是整个程序的入口。

println!("Hello World! My first Rust project.");

这是一个输出。在Java中,我们的输出是这样的:

System.out.println("Hello World! My first Rust project.")

在Go中,我们的输出是这样的:

fmt.Println(""Hello World! My first Rust project."")

大家都是一样的。在Go中,我们需要去执行go build编译一下,才能去执行这个程序的输出。同样,在Rust中,我们同样需要进行编译。

rustc hello_world.rs

这样就可以完成我们的编译过程了。最后就是执行了。

这里需要注意下:println!(""); 在 Rust 中属于宏。println! 调用 Rust 宏。如果改为调用函数,则应该将其输入为 println(不含 !)。我们将在第 19 章中更详细地讨论 Rust 宏。现在只需要知道,当看到一个 !,则意味着调用的是宏而不是普通的函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/292870.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

飞天使-k8s知识点5-kubernetes基础名词扫盲

文章目录 deploymentspodNodeserviceskubectl 实现应用伸缩kubectl 实现滚动更新kubernetes架构 deployments 中文文档 http://docs.kubernetes.org.cn/251.htmldeployment是用来创建和更新应用的,master 会负责将创建好的应用实例调度到集群中的各个节点 应用实例…

谷氨酰胺转氨酶活性分析试剂盒(Transglutaminase Activity Assay Kit)

谷氨酰胺转胺酶 谷氨酰胺转胺酶(TGs)是一种钙依赖性酶,参与蛋白质或肽的翻译后修饰以及如凝血、凋亡、细胞分化和细胞外基质稳定等各种细胞和生物过程。人谷氨酰胺转胺酶家族由8个催化活性组分TG1-7和XIIIa因子,以及一个缺乏活性…

【算法刷题】Day22

文章目录 1. 按摩师题干:算法原理:(dp)1. 状态表示:2. 状态转移方程3. 初始化4. 填表顺序5. 返回值 代码: 2. 寻找数组的中心下标题干:算法原理:(前缀和)代码…

MATLAB ga函数的使用方法

一、ga句法结构 x ga(fitnessfcn,nvars) x ga(fitnessfcn,nvars,A,b) x ga(fitnessfcn,nvars,A,b,Aeq,beq) x ga(fitnessfcn,nvars,A,b,Aeq,beg,IB,UB) x ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon) x ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon,options) x …

Ubuntu 常用命令之 grep 命令用法介绍

📑Linux/Ubuntu 常用命令归类整理 grep命令是一个强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。 grep命令的基本格式为 grep [options] pattern [file]。grep命令的主要参数有 -i:忽略大小写-v&…

Java整合APNS推送消息-IOS-APP(基于.p12推送证书)

推送整体流程 1.在开发者中心申请对应的证书(我用的是.p12文件) 2.苹果手机用户注册到APNS,APNS将注册的token返回给APP(服务端接收使用)。 3.后台服务连接APNS,获取连接对象 4.后台服务构建消息载体 5.后台…

SpringBoot的热部署

🙈作者简介:练习时长两年半的Java up主 🙉个人主页:程序员老茶 🙊 ps:点赞👍是免费的,却可以让写博客的作者开心好久好久😎 📚系列专栏:Java全栈,…

视频美颜SDK开发指南:实现高质量实时美颜效果

下文小编将于大家一同探讨美颜SDK的开发指南,希望开发者们能够获得一定的启发。 一、理解实时美颜的挑战 实时美颜涉及到对视频流进行实时处理,这对计算资源和算法效率提出了严峻的挑战。在开发视频美颜SDK之前,我们需要理解以下几个关键方…

【Linux系统编程二十二】:(信号1)--信号的产生与发送

【Linux系统编程二十二】:信号的产生与发送 一.理解特性二.信号的产生1.键盘组合键①.前台进程②.硬件中断 2.异常的本质①软件异常 3.异步的 三.信号的发送 一.理解特性 第一,我们能够识别这个信号。我们能知道这个信号是什么。 第二,我们能…

Security Boot secure Boot的介绍

什么是secure boot secure boot 是一种保证平台上软件完整性的过程或机制。secure boot会在硬件和软件之间建立一种信任关系。在启用secure boot之后,没有经过签名的固件和软件是无法运行在该设备上。通过这种方式可以保证操作系统免受恶意攻击。secure boot一般使…

AI中的强化学习是怎么做的呢?

1. 什么是强化学习 其他许多机器学习算法中学习器都是学得怎样做,而强化学习(Reinforcement Learning, RL)是在尝试的过程中学习到在特定的情境下选择哪种行动可以得到最大的回报。在很多场景中,当前的行动不仅会影响当前的rewar…

1270. 数列区间最大值(线段树求区间最大)

题目&#xff1a; 1270. 数列区间最大值 - AcWing题库 输入样例&#xff1a; 10 2 3 2 4 5 6 8 1 2 9 7 1 4 3 8输出样例&#xff1a; 5 8 代码&#xff1a; #include <cstdio> #include <iostream> #include <climits>//INT_MIN头文件using namespace s…