[易学易懂系列|rustlang语言|零基础|快速入门|(6)]

有意思的基础知识

变量绑定


我们现在回过头来看看,一些基础知识。

因为理解了前面的重要概念:所有权,借用,生命周期。

我们现在看基础知识就很简单了。

先看变量定义:

  1. let a = true;//rust不要求显式定义类型,编译器女王自动会根据上下文和用途,来自动定义类型,这里             //是:bool
    let b: bool = true;//如果显式定义类型,则通过:分号+类型

    let (x, y) = (1, 2);

    let mut z = 5;
    z = 6;

在rust,这些变量定义叫变量绑定。

为什么这样说?因为rust的变量,默认是不可变的。

如果,要变成可变变量,要用关键字:mut。

那如果是常量呢?

看代码:

常量(const):

  1. const N: i32 = 5;

静态变量(static):

  1. static N: i32 = 5;

常量与静态变量的区别是:

1.常量const在内存没有固定地址,而静态变量static的地址是固定的。

2.静态变量一般用在全局变量,一般写在代码最上方,在函数体外,常量可以定义在函数内。

3.一般最好用const来定义常量,因为它地址不是固定的,可以让编译器优化。

布尔值(bool):

  1. let x = true;
    let y: bool = false;

    // ⭐️ no TRUE, FALSE, 1, 0

字符(char):

  1. let x = 'x';
    let y = '
  2. [易学易懂系列|rustlang语言|零基础|快速入门|(6)|变量绑定]的更多相关文章

      1. [易学易懂系列|rustlang语言|零基础|快速入门|(28)|实战5:实现BTC价格转换工具]
      1. [易学易懂系列|rustlang语言|零基础|快速入门|(28)|实战5:实现BTC价格转换工具] 项目实战 实战5:实现BTC价格转换工具 今天我们来开发一个简单的BTC实时价格转换工具. 我们首先 ...

      1. [易学易懂系列|rustlang语言|零基础|快速入门|(27)|实战4:从零实现BTC区块链]
      1. [易学易懂系列|rustlang语言|零基础|快速入门|(27)|实战4:从零实现BTC区块链] 项目实战 实战4:从零实现BTC区块链 我们今天来开发我们的BTC区块链系统. 简单来说,从数据结构的 ...

      1. [易学易懂系列|rustlang语言|零基础|快速入门|(26)|实战3:Http服务器(多线程版本)]
      1. [易学易懂系列|rustlang语言|零基础|快速入门|(26)|实战3:Http服务器(多线程版本)] 项目实战 实战3:Http服务器 我们今天来进一步开发我们的Http服务器,用多线程实现. 我 ...

      1. [易学易懂系列|rustlang语言|零基础|快速入门|(25)|实战2:命令行工具minigrep(2)]
      1. [易学易懂系列|rustlang语言|零基础|快速入门|(25)|实战2:命令行工具minigrep(2)] 项目实战 实战2:命令行工具minigrep 我们继续开发我们的minigrep. 我们现 ...

      1. [易学易懂系列|rustlang语言|零基础|快速入门|(24)|实战2:命令行工具minigrep(1)]
      1. [易学易懂系列|rustlang语言|零基础|快速入门|(24)|实战2:命令行工具minigrep(1)] 项目实战 实战2:命令行工具minigrep 有了昨天的基础,我们今天来开始另一个稍微有点 ...

      1. [易学易懂系列|rustlang语言|零基础|快速入门|(23)|实战1:猜数字游戏]
      1. [易学易懂系列|rustlang语言|零基础|快速入门|(23)|实战1:猜数字游戏] 项目实战 实战1:猜数字游戏 我们今天来来开始简单的项目实战. 第一个简单项目是猜数字游戏. 简单来说,系统给了 ...

      1. [易学易懂系列|rustlang语言|零基础|快速入门|(5)|生命周期Lifetime]
      1. [易学易懂系列|rustlang语言|零基础|快速入门|(5)] Lifetimes 我们继续谈谈生命周期(lifttime),我们还是拿代码来说话: fn main() { let mut a = ...

      1. [易学易懂系列|rustlang语言|零基础|快速入门|(22)|宏Macro]
      1. [易学易懂系列|rustlang语言|零基础|快速入门|(22)|宏Macro] 实用知识 宏Macro 我们今天来讲讲Rust中强大的宏Macro. Rust的宏macro是实现元编程的强大工具. ...

      1. [易学易懂系列|rustlang语言|零基础|快速入门|(21)|智能指针]
      1. [易学易懂系列|rustlang语言|零基础|快速入门|(21)|智能指针] 实用知识 智能指针 我们今天来讲讲Rust中的智能指针. 什么是指针? 在Rust,指针(普通指针),就是保存内存地址的值 ...

      1. [易学易懂系列|rustlang语言|零基础|快速入门|(20)|错误处理]
      1. [易学易懂系列|rustlang语言|零基础|快速入门|(20)|错误处理] 实用知识 错误处理 我们今天来讲讲Rust中的错误处理. 很多语言都有自己的错误处理方式,比如,java是异常处理机制. ...

    1.  
    2. 随机推荐

        1. 折腾ELK+kafka+zk
        1. 回顾前大半年: 1.kubespray搭建K8S集群 2.openVPN 搭建 3.helm使用 4.aws EKS 搭建维护 5.Jenkins pipline 编写ci/cd流程 6.蓝鲸,jum ...

        1. 清除表单input输入框内数据
        1. 清除表单input输入框内数据 1. $(':input','#addVoucherType') //'#addVoucherType'表单id .not(':button') .val('') .r ...

        1. kernel function
        1. 下面这张图位于第一.二象限内.我们关注红色的门,以及“北京四合院”这几个字下面的紫色的字母.我们把红色的门上的点看成是“+”数据,紫色字母上的点看成是“-”数据,它们的横.纵坐标是两个特征.显然,在这 ...

        1. 问题:anaconda: command not found
        1. 打开Terminal 1.使用命令:sudo apt install vim 安装vim文本编辑器2.使用命令:vim ~/.bashrc 修改环境变量 3.在文本最后添加命令:export PATH ...

        1. nginx查看并发数量
        1. cat >> /etc/nginx/conf.d/status.conf << EOF server{ listen ; server_name www.test2.com; ...

        1. NFA转换为等价的DFA
        1. 在编译系统中,词法分析阶段是整个编译系统的基础.对于单词的识别,有限自动机FA是一种十分有效的工具.有限自动机由其映射f是否为单值而分为确定的有限自动机DFA和非确定的有限自动机NFA.在非确定的有限 ...

        1. beego项目部署到nginx(含httphttps
        1. beego项目部署到nginx(含httphttps)    之前的程序部署到服务器采用的直接部署,比较方便,现在把它部署到nginx,以便后续的反向代理和负载均衡,同时,因为要接入微信小程序,所以 ...

        1. AJAX中同步和异步的区别和使用场景
        1. 一.简介Ajax请求最重要的问题是代码执行的顺序.最长遇到的问题是,我们定义一个变量接收ajax异步请求的返回结果,后续代码使用,然而后续代码在使用时该变量为初始值,始终得不到想要的结果!!!二.示例 ...

        1. HTTP】四、HTTP协议常见问题
        1.   HTTP协议是一个非常重要的应用层协议,在面试中有很多关于这方面的问题,这里做一个总结,大部分都在前面的文章中提到了,没提到的这里做一个介绍. 1.HTTP协议的基本原理.工作流程   HTTP ...

        1. Linux文件目录的权限
        1. 权限对文件的重要性:(主要是针对文件的内容而言,与文件名没有关系) r: 可读取此文件的实际内容. w: 可以编辑.新增或者修改该文件的内容(但不能删除该文件) x: 该文件具有可以被系统执行的权限. ...