在苹果的Swift语言中,let和var有什么区别?
在我的理解中,它是一种编译语言,但它不在编译时检查类型。这让我很困惑。编译器如何知道类型错误?如果编译器不检查类型,这不是生产环境的问题吗?
当我试图给let赋值时给出了这个错误:
不能给属性赋值:'variableName'是一个'let'常量 将'let'改为'var'使其可变
在苹果的Swift语言中,let和var有什么区别?
在我的理解中,它是一种编译语言,但它不在编译时检查类型。这让我很困惑。编译器如何知道类型错误?如果编译器不检查类型,这不是生产环境的问题吗?
当我试图给let赋值时给出了这个错误:
不能给属性赋值:'variableName'是一个'let'常量 将'let'改为'var'使其可变
当前回答
Var值可以改变,初始化后。但让价值不被改变,当它被初始化一次。
在var情况下
function variable() {
var number = 5, number = 6;
console.log(number); // return console value is 6
}
variable();
如果让
function abc() {
let number = 5, number = 6;
console.log(number); // TypeError: redeclaration of let number
}
abc();
其他回答
The
在Swift编程语言文档中,声明常量和变量部分指定了以下内容:
使用let关键字声明常量,使用var关键字声明变量。
确保理解Reference类型是如何工作的。与值类型不同,尽管引用类型的实例被声明为常量,但对象的底层属性可以改变。请参阅文档中的类是引用类型部分,并查看更改frameRate属性的示例。
"使用let作为常量,使用var作为变量"
摘自:苹果公司《快速编程语言》。“iBooks。https://itun.es/us/jEUH0.l
Var是一个变量,你可以在任何时间任意改变它
例如
var changeit:Int=1
changeit=2
//changeit has changed to 2
Let是不变的,不能改变
例如
let changeit:Int=1
changeit=2
//Error becuase constant cannot be changed
简单的区别
Let =(不能更改)
Var =(随时更新)
Var值可以改变,初始化后。但让价值不被改变,当它被初始化一次。
在var情况下
function variable() {
var number = 5, number = 6;
console.log(number); // return console value is 6
}
variable();
如果让
function abc() {
let number = 5, number = 6;
console.log(number); // TypeError: redeclaration of let number
}
abc();