一尘不染

swift中的let和var有什么区别?

swift

letvarApple的Swift语言有什么区别?

以我的理解,它是一种编译语言,但它不会在编译时检查类型。这让我感到困惑。编译器如何知道类型错误?如果编译器不检查类型,那么生产环境是否存在问题?


阅读 397

收藏
2020-07-07

共1个答案

一尘不染

let关键字定义一个常数:

let theAnswer = 42

theAnswer无法改变之后。这就是为什么weak不能使用编写任何内容的原因let。它们需要在运行时进行 更改
,而您必须在使用它们var

var定义了一个普通变量。

有趣的是:

常量的值 不需要在编译时就知道 ,但是您必须精确地分配一次值。

另一个奇怪的功能:

对于常量和变量名称,几乎可以使用任何喜欢的字符,包括Unicode字符:

let 🐶🐮 = "dogcow"

摘自:Apple Inc.“
Swift编程语言”。iBooks。https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewBook?id=881256329

编辑

因为评论要求在答案中添加其他事实,所以将其转换为社区Wiki答案。随意编辑答案以使其更好。

2020-07-07