1. 普通赋值符的返回值
如上图,普通赋值的返回值属于Void类型
2. 赋值符号在Optional Chain中的返回值
class SomeClass {
var className:String?
}
let aClass:SomeClass? = SomeClass()
let anotherString = "anotherString"
if ( (aClass?.className = anotherString ) != nil) {
print("赋值成功")
}else {
print("赋值失败")
}
如果是给Optional Chain中的属性赋值,则返回值的类型为 Void?
返回值可能是Void,此时不等于nil,即赋值成功;或等于nil,即赋值失败
3. Void和空tuple的区别:
作为类型表示时,Void与()一致,表示‘空’类型。()也可以作为空tuple,表示 ‘a special value of type Void’
//没有编译错误和警告
let value:() = (name = aString)
let emptyTuple:() = ()
实际上无返回值的函数其实返回一个空tuple。官方文档:
NOTE
Strictly speaking, the sayGoodbye(_:) function does still return a value, even though no return value is defined. Functions without a defined return type return a special value of type Void. This is simply an empty tuple, in effect a tuple with zero elements, which can be written as ().
Reference:The Swift Programming Language (Swift 2.2)
//没有编译错误和警告
func someFunc() {
return ()
}