swift赋值语句的返回值

swift赋值语句的返回值,第1张

概述在C语言中赋值语句的返回值就是值本身..比如可以用int a = b = 2;将a和b同时赋值为2. swift的赋值语句也会有返回值, 它的返回值一般是一个Void即()  比如下面的var c: Void, 这里变量c的类型就是void 其中: Void可以省略(因为可以自动推导出来) var b: Intvar c: Void = (b = 1) // ()c.dynamicType

在C语言中赋值语句的返回值就是值本身..比如可以用int a = b = 2;将a和b同时赋值为2.
swift的赋值语句也会有返回值,它的返回值一般是一个VoID即()
比如下面的var c: VoID,这里变量c的类型就是voID 其中: VoID可以省略(因为可以自动推导出来)

var b: Intvar c: VoID = (b = 1) // ()c.dynamicType // ().Typeprint(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") // nilresult.dynamicType  // Optional<()>.Typeif let result = result {    print(result,p!.name!)} else {    print("name not assigned") //"name not assigned\n"}

注:
1.VoID其实是()的typealias,它们是完全等价的. 而()是一个空的tuple,没有返回值的函数返回的就是一个空的tuple.
2. 此关系式成立: VoID? === ()? === Optional<VoID> === Optional<()>

参考 iOS 9 programming Fundamentals with Swift chapter 3.

总结

以上是内存溢出为你收集整理的swift赋值语句的返回值全部内容,希望文章能够帮你解决swift赋值语句的返回值所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1075725.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存