swift和`?`和`!`有什么区别? [重复]

问题描述 投票:-3回答:1
我在运行此代码时有疑问,他们两个都给我相同的数据类型作为结果。我知道我确实缺少一些基本的知识,有人可以解释为什么!和?类型上的结果与数据类型相同?

import UIKit import Foundation var unwrappedString: String! var optionalString: String? print("type of unwrappedString is:", type(of:unwrappedString)) print("type of optionalString is:", type(of:optionalString))

输出是

type of unwrappedString is: Optional<String> type of optionalString is: Optional<String>

ios swift optional
1个回答
2
投票
两个符号!和?用于可选。当我们确保选项类型变量一次具有值并且需要对此采取行动时,我们应该使用!。否则,如果变量值是nil,它将崩溃,如果使用?,应用程序将不会在nil情况下崩溃。
© www.soinside.com 2019 - 2024. All rights reserved.