第1章Hello world 5/5:Rust/Java/C++实现Hello world代码优劣势对比:运行第一个程序

讲动人的故事,写懂人的代码

1.8 对比三种语言的Hello world代码特点和优劣势

艾极思又对比了三种语言的Hello world代码。
在这里插入图片描述

1.8.1 Rust的Hello world代码解读

让我们详细解释一下 Rust 这一个文件中的代码,并讨论为什么使用这些语法:

1.8.1.1 文件:main.rs

fn main() {
   
    println!("Hello, world!");
}

1.8.1.2 语句详解

  1. fn main()
    • 定义函数fn 是 Rust 的关键字,用于定义函数。main 是函数的名称。在 Rust 程序中,main 函数是程序的入口点,所有 Rust 程序都从 main 函数开始执行。
    • 无参数() 表示函数的参数列表。main 函数在这个例子中没有参数。如果需要,可以定义带参数的 main 函数,例如用于处理命令行参数。
  2. { }
    • 函数体:花括号 {} 包围的是函数体,包含了函数执行的所有代码。在 main 函数中,花括号内包含了要执行的语句。
  3. println!("Hello, world!");
    • 宏调用println! 是一个宏(macro),不是函数。宏在编译时展开,允许更灵活的代码生成。Rust 使用 ! 来区分宏调用和函数调用。
    • 打印字符串println! 宏用于向标准输出打印文本,并在文本末尾自动添加换行符。"Hello, world!" 是传递给宏的字符串字面量。宏会处理字符串插值和格式化,例如:println!("{} {}", "Hello", "world");
    • 分号; 表示语句结束。在 Rust 中,每个表达式通常以分号结束(除非它是块表达式的最后一个表达式,并且作为返回值使用)。

1.8.1.3 为什么使用这些语法

  1. 简洁性和清晰性
    • Rust 的语法设计强调简洁和清晰。fn main() 简单明了地定义了程序入口点,没有复杂的语法负担。
  2. 安全性
    • Rust 通过其所有权系统和类型系统在编译时提供内存安全和线程安全。虽然在这段简单的代码中没有直接体现,但 println! 宏也是安全的,避免了常见的格式化字符串漏洞。
  3. 宏系统
    • 使用宏 println! 而不是函数,使得编译器可以在编译时处理字符串插值和格式化,提供更高效和灵活的输出机制。
  4. 性能
    • Rust 编译器非常重视性能优化,生成的二进制文件可以媲美 C 和 C++ 的性能。在这段简单的代码中,这点体现不明显,但 Rust 的设计目标之一是高性能。
  5. 现代语言特性
    • Rust 提供了许多现代编程语言特性,如模式匹配、泛型、trait、异步编程等。虽然这些特性没有在这段代码中展示,但它们使得 Rust 成为一门功能强大且灵活的语言。

1.8.2 Java的Hello world代码解读

让我们详细解释一下 Java 文件中的代码,并讨论为什么使用这些语法:

1.8.2.1 文件:App.java

package org.example;

public class App {
   
    public 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(文章复现)低温环境下考虑电池寿命的微电网优化调度

参考文献: [1]丁佳昀,胡秦然,吴在军,等.低温环境下考虑电池寿命的微电网优化调度[J].中国电机工程学报,2024,44(10):3815-3824. 1.摘要 储能系统作为微电网重要组成部分,为微电网协调能量供需提供了解决方案。然而,在低温环境下&#xff0c…

《软件定义安全》之六:SDN和NFV安全实践

第6章 SDN和NFV安全实践 1.基于流的安全防护 1.1 DDoS检测清洗 DDoS检测清洗应用ADS APP的设计思路:借助安全控制平台中流相关的组件,从SDN控制器中获得相应的流量,并根据抗DDoS应用订阅的恶意流特征进行检测,发现恶意流量后&a…

最新thinkphp5内核全开源女神赢口红H5公众号版第五版(100%可经营)

最新thinkphp5内核全开源女神赢口红H5公众号版第五版(100%可经营) 搭建教程 1、程序为thinkPHP5开发 php版本要求5.6!不支持虚拟主机! 2、上传程序到您的根目录!导入m213.sql文件!修改数据库配置文件app…

使用docker-compose搭建达梦数据库主备集群

目录 1. Docker集群的搭建 2. 检查主备数据库 3. 主备集群的JDBC连接设置 1. Docker集群的搭建 达梦的镜像文件都是tar文件,通过docker load命令导入: docker load -i dm8_20240422_x86_rh6_64_rq_ent_8.1.3.140.tar 成功导入后,可看到…

Android程序设计课程教学解决方案

引言 随着信息技术的飞速发展,智能手机和移动应用已成为现代生活不可或缺的一部分。Android作为全球最大的移动操作系统,其开发人才需求量巨大。高职院校作为培养高素质技能人才的重要基地,如何在Android程序设计课程中有效提升学生的实践能力…

7、安装依赖、连接数据库

安装依赖、连接数据库 打开datagrip软件 连接本地数据库,第一次连接会提示安装驱动,保持网络畅通跟着点击即可 创建一个sql控制台: 创建一个数据库(数据库名称可以自取) create database fullStackBlog;右击数据库新建控制台,用于创建数据表 创建一个blog的表 …

IP协议报文格式

IP协议报文格式 一: 报头格式1.1 : 4位版本1.2 : 4位首部长度1.3 : 8位服务类型 :1.4 : 16位总长度(字节数)1.5 : 8位生存时间(TTL)1.6 : 8 位协议1.7 : 32 位源IP / 32 位目的IP 一: 报头格式 1.1 : 4位版本 现在使用的也就只有IPv4,IPv6 1.2 : 4位首部长度 以 4字节为单位…

目前比较好用的LabVIEW架构及其选择

LabVIEW提供了多种架构供开发者选择,以满足不同类型项目的需求。选择合适的架构不仅可以提高开发效率,还能确保项目的稳定性和可维护性。本文将介绍几种常用的LabVIEW架构,并根据不同项目需求和个人习惯提供选择建议。 常用LabVIEW架构 1. …

开源VisualFbeditor中文版,vb7 IDE,VB6升级64位跨平台开发安卓APP,Linux程序

吴涛老矣,社区苦无64位易语言,用注入DLL增强菜单,做成VS一样的界面 终归是治标不治本,一来会报毒,二来闭源20年没更新了 开源的VB7,欢迎易语言的铁粉进群:1032313876 【Freebasic编程语言】编绎…

服务部署:解决Docker容器与虚拟机主机之间MySql连接访问问题

一、场景: 虚拟机上Ubuntu系统安装了Mysql,现在有一个服务应用需要使用docker来部署,服务应用需要连接mysql做数据库基础使用,配置文件中配置了虚拟主机的IP和端口,但是还是无法连接到Mysql,报错无法连接超…

Characters 2 01(卡通可爱人物动画模型)

● 包裹● - 26名男子; - 29个女孩。 ● 使用地点 ● - 游戏。针对游戏引擎优化的模型; -乘法; 广告和营销; - 虚拟现实/增强现实。 ● 特点 ● - 你可以很容易地改变物体的颜色 - 使用UV贴图; - 对象逻辑位置的枢轴; - 模型具有逻辑名称。 ● 几何学● 62个独特的资产(…

【MySQL】(基础篇七) —— 通配符和正则表达式

通配符和正则表达式 本章介绍什么是通配符、如何使用通配符以及怎样使用LIKE操作符进行通配搜索,以便对数据进行复杂过滤;如何使用正则表达式来更好地控制数据过滤。 目录 通配符和正则表达式LIKE操作符百分号(%)通配符下划线(_)通配符 通配符使用技巧正…

VitePress+Docker+jenkins构建个人网站

VitePress官网 VitePress | 由 Vite 和 Vue 驱动的静态站点生成器 可以理解为一个前端脚手架:快速生成个人站点 最好先大概看一遍 快速开始 | VitePress 可以在线体验一下 安装条件 node -v 检查下node版本 在D盘创建一个文件夹 例如:VitePress 进入文件夹 cmd npm ini…

xshell远程无法链接上VM的centos7

1、现象如下, 2.1解决办法:查证后发现这个默认的设置为vmnet0 2.2解决办法:重启win10的虚拟机网卡(先禁用再启用) 3.参考文章:Xshell连接不上虚拟机centos7_centos7的nat模式可以ping通网络,但是用xshell连…

深入浅出LLM大语言模型

一. 前言 2022年末,聊天程序ChatGPT的上线,在短短5天被注册用户就破百万。ChatGPT的爆火,在一夜之间,带领人类穿越到了真正的人工智能时代。 本文会从ChatGPT作为切入点,在介绍其底层的GPT模型诞生史后,再…

基于SSM+Jsp的交通事故档案管理系统

开发语言:Java框架:ssm技术:JSPJDK版本:JDK1.8服务器:tomcat7数据库:mysql 5.7(一定要5.7版本)数据库工具:Navicat11开发软件:eclipse/myeclipse/ideaMaven包…

打造精细化运维新玩法(三)

实践SLO,概括下就是在相对标准、统一的框架下指导和推动服务质量的数字化建设,形成对组织有价值的数据资产和流程规范。借用在人工智能和机器学习领域的观点,算法的上限受限于数据质量的好坏,所以从源头上建设高质量的数据非常重要…

2024年城市建设、运输与智慧交通国际会议(ICUCTST 2024)

2024 International Conference on Urban Construction, Transportation, and Smart Transportation 【1】大会信息 会议简称:ICUCTST 2024 大会地点:中国厦门 会议官网:www.icuctst.com 投稿邮箱:icuctstsub-paper.com 【2】会…

打工人和学生党的福利,NewspaceGpt使用新体验

使用地址:https://newspace.ai0.cn/ 个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮…

2024年智能医疗与生物医药国际会议(ICIHB 2024)

2024 International Conference on Intelligent Healthcare and Biopharmaceuticals 【1】大会信息 会议简称:ICIHB 2024 大会地点:中国珠海 会议官网:www.icihb.com 投稿邮箱:icihbsub-paper.com 【2】会议简介 2024年智能医…