java赋值语句的返回值_swift赋值语句的返回值
发布日期:2021-06-24 13:05:41 浏览次数:2 分类:技术文章

本文共 900 字,大约阅读时间需要 3 分钟。

在C语言中赋值语句的返回值就是值本身..比如可以用int a = b = 2;将a和b同时赋值为2.

swift的赋值语句也会有返回值, 它的返回值一般是一个Void即()

比如下面的var c: Void, 这里变量c的类型就是void 其中: Void可以省略(因为可以自动推导出来)

var b: Int

var c: Void = (b = 1) // ()

c.dynamicType // ().Type

print(c) //"()\n"

但是, 当=左边有optional unwrapping (形如a?.b ) 的时候, 赋值语句返回的是一个Void? 即  ()?

这是因为optional unwrapping可能unwrap失败, 此时赋值不会发生.

所以赋值语句会在赋值成功的时候返回Void, 在赋值失败的时候返回nil 代码如下:

class Person {

var name: String?

}

var p: Person?// = Person(); //nil

//赋值语句返回的是一个Void? 即 ()?

//这里result的值当p为nil的时候为nil, 当p有值(赋值成功)的时候返回Optional

var result: ()? = (p?.name = "cyper") // nil

result.dynamicType // Optional.Type

if let result = result {

print(result, p!.name!)

} else {

print("name not assigned") //"name not assigned\n"

}

注:

1. Void其实是()的typealias, 它们是完全等价的. 而()是一个空的tuple, 没有返回值的函数返回的就是一个空的tuple.

2. 此关系式成立: Void? === ()? === Optional  === Optional

参考 iOS 9 programming Fundamentals with Swift chapter 3.

转载地址:https://blog.csdn.net/weixin_32946543/article/details/114307252 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:mysql来源版本_MySQL表类型和存储引擎版本不一致解决方法
下一篇:java spi 好处_浅谈 Java SPI 机制

发表评论

最新留言

关注你微信了!
[***.104.42.241]2024年04月25日 14时22分59秒