美文网首页
变量绑定

变量绑定

作者: BIGHAI | 来源:发表于2017-05-24 21:27 被阅读0次

1.变量绑定中的模式匹配
比如说下面这样的就叫做模式匹配,但是也有一些需要注意的地方,比如说下面列举的:

let (a, b) = (1, 2);
let c :i32= 9;
let (a1, b1) = (1, a1+2);//error:can not find a1 in this scope
let (a2, b2) = (c, c+9);//it's okay

2.可变性
rust中的绑定默认是不可变的。不可变的绑定绑定了之后就不能再将它们的绑定关系给解除。

let a:i32 = 5;
a = 10;//error:re-assignment of immutable variable 'a'

3.rust中不能够使用一个未经过初始化的变量

let a:i32;
println!("{}", a);//use of possibly uninitialized variable: `a`

通过上面代码运行之后输出的错误结果来看,我们可以看出在rust中他是不会为一个变量进行默认初始化工作的?否则下面的代码就应该出错了对吧:

let a:i32 ;
a = 9;
println!("{}", a);

4.作用域和隐藏
我们使用{}来表示一个代码块,在同一个{}中的变量位于同一个作用域之中。但是问题是为什么我们在上面提到的关于变量绑定中的模式匹配会出现不在同一个作用域的错误?关于变量隐藏的问题,在子作用域中定义的变量可以隐藏位于外层作用域中的同名变量,在同一个作用域中后定义的同名变量可以隐藏位于该作用域的先前定义的变量。但是,要注意这里关于变量隐藏和变量可变性之间的障眼法。他们是两个不同的概念,变量可变性不涉及新的变量,而变量隐藏一定是定义了一个新的变量,只不过是同名变量而已。

let a:i32 = 9;
{
  let a:i32 = 8;
  println!("{}",a);//8
}
let a:i32 = 0;
println!("{}", a);//0

相关文章

  • 小程序中的一些坑(wepy)

    1.绑定变量的语法,各不相同。 //绑定style中的height变量 //绑定class中的变量 //事件绑定是...

  • oracle ORA-01704问题(clob字段insert报

    绑定变量。绑定变量也不复杂,就是把要插入的字符串先绑定给一个变量,然后在insert或者update语句中用变量代...

  • 绑定变量

    http://www.dbsnake.net/books

  • 变量绑定

    1.变量绑定中的模式匹配 比如说下面这样的就叫做模式匹配,但是也有一些需要注意的地方,比如说下面列举的: 2....

  • 框架视图层(二)

    wxml 数据绑定1.简单绑定。Mustache 语法双括号包裹变量,组件属性、控制属性、关键字变量绑定需要在双引...

  • 【Python】笔记17(实例属性、类属性/__slots__)

    类创建的实例可以任意绑定属性,给实例绑定属性的方法是通过实例变量或者通过self变量,如对def里面的self绑定...

  • 码硬解析的改进方法之二使用绑定变量

    绑定变量要求变量名称,数据类型以及长度是一致,否则无法使用软解析 绑定变量(bind variable)是...

  • (三、5)生成的绑定类

    数据绑定库生成用于访问布局的变量和视图的绑定类。 此页面显示如何创建和自定义生成的绑定类。生成的绑定类将布局变量与...

  • wxml

    1、标签中数据绑定 示例 属性名 = "{{变量或表达式}}" 绑定属性变量时,双引号与变量之间不能够有空格,否则...

  • rust 数据类型与变量

    1、定义变量 1. 不可变绑定 1. 自动类型推导 2. 不可对变量重新[赋值] 2. 可变绑定 1. 可以对变量...

网友评论

      本文标题:变量绑定

      本文链接:https://www.haomeiwen.com/subject/rcgoxxtx.html