0
在夫特3中,当一个具有可选的函数的参数,是与什么功能之间的区别:Swift 3 - ! vs?为可选功能参数
func doThis(num: Int!)
和
func doThat(num: Int?)
在夫特3中,当一个具有可选的函数的参数,是与什么功能之间的区别:Swift 3 - ! vs?为可选功能参数
func doThis(num: Int!)
和
func doThat(num: Int?)
两个声明num
是一个可选Int
。
如果你做Int!
它可以隐式地解开你的函数。 这意味着您可以在需要普通(非可选)Int
的地方使用它。在这种情况下,如果碰巧是nil
,它将会失败。
着有“适当的” Int?
编译器不会让你使用num
其中需要Int
并迫使你首先包括支票/后卫。
Int!
构造主要用于与Objective-C代码的互操作性,其中不清楚引用类型是否可选。你应该在新代码中避免它。
是的,这符合我观察到的行为。谢谢。 – cdub
不是Swift专家,但不是!打开可选和?是可选的吗? – Li357
在将这些内容发布到此论坛之前,您应该使用Google搜索。这不是一个非常困难的查询。可选意味着你可以期待一个零,但与!你需要传递一些处于解包状态的东西,如果通过零将会崩溃 –
我的问题是关于函数声明。 – cdub