从C++到Rust (一):变量与基本逻辑语法

系列文章目录

Rust入门手册 - 《C++ :从入门到放弃》(一)

Rust入门手册 - 《C++ :从入门到放弃》(二)

目录

前言:C++:从入门到放弃

What, Who and Why?

Rust基本组件

rustc

cargo

变量

变量与内存分配

重影Shadowing

可变变量与不可变变量

基本逻辑语法

条件语句

循环语句


前言:C++:从入门到放弃

        “Programmer needs to be trusted.

        这句话是C++从创建以来的设计哲学。C++会在语言以及编译器层面给程序员提供尽可能多的可能性,而程序本身的设计则是程序员应该干的事情——当然,程序出了bug,那也是程序员自己的问题,而不是C++的问题,因为C++对程序员足够信任。

        而这种设计理念则是一柄双刃剑:一方面,一个优秀的开发者可以精确的控制的程序的每一个细节;而另一方面,程序员不得不花费大量的精力去维护细节,而人的精力总是有限的,bug在所难免。这也是为什么C++难学的一个重要原因:要实现一个功能,Java可能给你提供一套标准的实现流程,只需要调个API就完事了,而C++则给你提供N种不同的编程范式让你自由选择最佳的方案。

        不得不说,C++是一门极其优秀的开发语言,但是它也有很多非常突出的缺点,主要集中在以下几点:

  1. 沉重的历史包袱;C++由C发展而来,新增的特性都会向前兼容,兼容性是一个很好的优点,但是这也反过来拖累了C++自身的发展。
  2. 混乱的外部库管理机制;试想如果你想加入一个外部库的功能,你可能做的一系列步骤:
    1. 去github\CSDN\gitee等各大论坛网站上搜索是否有合适的库
    2. 下载库,配置繁琐的动态库路径、头文件路径等将其引入项目
    3. 尝试编译,发现几百个error,上千个warning
    4. 开始排查error,解决各种系统库缺失、版本不兼容问题
    5. 。。。
  3. 过于自由的设计哲学,尤其是对于内存的管理,一个优秀的C++程序员可以精确的控制的每一块内存,但是也反过来容易出现各种奇怪的内存问题。

Rust语言作为这几年一门新兴的语言,一直致力于成为优雅解决高并发和高安全性系统问题的编程语言,被认为是C++最有力的继任者。与C++对比,rust突出的优点有很多:

  1. 优秀的性能表现:Rust是一门静态语言,采用了和C/C++类似的编译-运行方式,没有了解释器和运行时带来的性能损失;同时Rust使用所有权管理内存,相较垃圾回收机制更为高效。
  2. 安全、稳定、可靠:安全性和可靠性是Rust最为突出的特点,所有权和生命周期等特性将可能出现的bug直接扼杀在了编译期。Rust甚至可以宣称“只要程序能够通过编译,那么就不会出现程序性的bug”
  3. 简单易用的包管理器:Rust官方提供了cargo包管理工具,只需要简单的步

你可能感兴趣的:(rust,c++,开发语言)