Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Swift带有“?”(问号)和“!”(感叹号)的变量装饰,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我理解,在Swift中,所有的变量必须设置一个值,通过使用可选项,我们可以设置一个变量,最初设置为nil。 我不明白是什么设置一个变量!正在做,因为我的印象是这“解包”一个可选的值。我想通过这样做,你是保证有一个值,以解开在该变量,这就是为什么在IBACtions等,你看到它使用。 所以简单地说,什么是被初始化的变量,当你做这样的事情: var aShape : CAShapeLayer! 为什么
我理解,在Swift中,所有的变量必须设置一个值,通过使用可选项,我们可以设置一个变量,最初设置为nil。

我不明白是什么设置一个变量!正在做,因为我的印象是这“解包”一个可选的值。我想通过这样做,你是保证有一个值,以解开在该变量,这就是为什么在IBACtions等,你看到它使用。

所以简单地说,什么是被初始化的变量,当你做这样的事情:

var aShape : CAShapeLayer!

为什么/我什么时候这样做?

在类型声明中!是类似于?两者都是可选的,但是!是一个implicitly unwrapped” optional,意味着你不必解开它访问的值(但它仍然可以是nil)。

这基本上是我们已经在objective-c中的行为。一个值可以是nil,你必须检查它,但你也可以直接访问该值,如果它不是一个可选的(重要的区别,如果你不检查nil,你会得到一个运行时错误)

// CAnnot be nil
var x: Int = 1

// The type here is not "Int",it's "Optional Int"
var y: Int? = 2

// The type here is "Implicitly Unwrapped Optional Int"
var z: Int! = 3

用法

// you can add x and z
x + z == 4

// ...but not x and y,because y needs to be unwrapped
x + y // error

// to add x and y you need to do:
x + y!

// but you *should* do this:
if let y_val = y {
    x + y_val
}

大佬总结

以上是大佬教程为你收集整理的Swift带有“?”(问号)和“!”(感叹号)的变量装饰,全部内容,希望文章能够帮你解决Swift带有“?”(问号)和“!”(感叹号)的变量装饰,所遇到的程序开发问题。

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

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。