为什么可以';我声明了一个变量,不在swift中为它赋值,以便以后使用吗?
我理解optionals和nil值的概念,以及swift如何确保您的代码不出现为什么可以';我声明了一个变量,不在swift中为它赋值,以便以后使用吗?,swift,variables,swift-optionals,Swift,Variables,Swift Optionals,我理解optionals和nil值的概念,以及swift如何确保您的代码不出现错误 斯威夫特擅长推断变量。但是为什么swift编译器不接受一个声明的变量呢 也就是说,为什么会这样 let unInitializedVariable:Int 抛出一个错误,如果我说 let unInitializedVariable: Int? = nil 那么编译器就高兴了。如果编译器推断出第一个语句与后面的表达式相同,这是否毫无意义?有人能解释一下吗 并不是编译器不能推断出它。它不想。类型安全意味着您可以获
错误
斯威夫特擅长推断变量
。但是为什么swift编译器不接受一个声明的变量呢
也就是说,为什么会这样
let unInitializedVariable:Int
抛出一个错误,如果我说
let unInitializedVariable: Int? = nil
那么编译器就高兴了。如果编译器推断出第一个语句与后面的表达式相同,这是否毫无意义?有人能解释一下吗 并不是编译器不能推断出它。它不想。类型安全意味着您可以获得所需的类型 智力?和Int是非常不同的。Int表示你有一个值,Int?表示您可能有值,也可能没有值
使用JSONDecoder,如果您有一个包含Int的结构,如果它的键和值丢失,您将得到一个错误。如果是Int?它不在乎它是否在那里。Int和Int?看起来是一样的,但它们的工作方式非常不同。您需要在代码的后面设置
未初始化的变量。检查这个