Open yaofly2012 opened 1 year ago
强类型。
let/var name[: type] [= initialValue]
initialValue
可以推断出变量类型,则可以省略:type
;
var fruits = ["strawberries", "limes", "tangerines"]; // fruits类型是 [String]
fruits = [] // 虽然新值无法确定类型,但是fruits类型是确定的了
3. 如果没有`initialValue`,则默认值是变量类型的默认值(如Int类型默认0)
>The value of a constant doesn’t need to be known at compile time, but you must assign it a value exactly once
`let`变量(即常量)在声明的时候必须赋值,并且只能赋值一次。但是在编译阶段不一定明确变量的值,比如赋值个其他变量。
```swift
var a = 1;
let b = a;
不存在隐式类型转换,如果要进行类型转换则必须显示的指定。
双引号
\()
尾部"""
必须独占一行;
尾部"""
的缩进不能多余每行的缩进
insufficient indentation of next 2 lines in multi-line string literal
每一行的缩进如果多与尾部"""
的缩进,则一致的缩进会被删掉。
if
语句和可选值结合使用switch
case
后面可以跟人意类型的数据default
while
repeat-while
类似JS里的do-while
同JS一样,函数也是Swift的一等公民(first-class type),函数可以作为变量的值,函数的实参、返回值。
参数标签? 形参名字作为参数标签(label)有何特殊意义?
如何理解函数本质是闭包的特例
?
闭包是个内嵌的函数,内嵌在函数里,也可以是内嵌{}
里(匿名闭包)。
在创建类实例的时候,每个属性都必须赋值(赋值的方式可以是声明的时候赋值,或者在构造器里赋值),否则编译报错
error: return from initializer without initializing all stored properties
语法
self
构造器
析构函数
Swift没有字面量变量?对象就是类的实例,即只能通过类创建对象。
如果可选变量是个对象,如何访问可选变量的属性呢?利用?.
let optionalSquare: Square? = Square(sideLength: 2.5, name: "optional square")
let sideLength = optionalSquare?.sideLength
变量 常量 关键字
类型:
控制语句 操作符
模块
包管理器
编程思想
Code written at global scope is used as the entry point for the program
参考