Ios 如何在Swift中描述零对象的存在及其价值?
可以说Swift中存在一个零对象吗? 以声明为可选类型的数组为例Ios 如何在Swift中描述零对象的存在及其价值?,ios,swift,optional,Ios,Swift,Optional,可以说Swift中存在一个零对象吗? 以声明为可选类型的数组为例 var books : [Book]? 这个数组一开始是一个nil对象,但它是否仍然存在,因为它被声明为可选的,这表明它在某个点上可能有一个值 就正确描述和理解nil对象而言,这是否准确:“nil对象还不存在,也没有值,但后来可能通过给定值而存在”在Swift中,可选项可以包含nil,但nil本身表示没有值。当你写下你所描述的东西时: var books : [Book]? 空间被分配为将来可能包含某些内容,它被初始化为可选,
var books : [Book]?
这个数组一开始是一个nil对象,但它是否仍然存在,因为它被声明为可选的,这表明它在某个点上可能有一个值
就正确描述和理解nil对象而言,这是否准确:“nil对象还不存在,也没有值,但后来可能通过给定值而存在”在Swift中,可选项可以包含nil
,但nil
本身表示没有值。当你写下你所描述的东西时:
var books : [Book]?
空间被分配为将来可能包含某些内容,它被初始化为可选
,但其值被分配为nil
,实际上并不存在nil
在技术上只是一个思想上的值,因为变量可以被赋值nil
。实际上,Swift中缺少值,可选项可以包含nil
,但nil
本身表示缺少值。当你写下你所描述的东西时:
var books : [Book]?
空间被分配为将来可能包含某些内容,它被初始化为
可选
,但其值被分配为nil
,实际上并不存在nil
在技术上只是一个思想上的值,因为变量可以被赋值nil
。实际上,它缺少一个值,变量books
存在,但它不是一个对象。它的值为可选值。无
以后可以将值(或引用)分配给可选变量,但这不会“使变量存在”;它一直存在,只是没有分配任何东西给它
分配给变量的对象、值或结构的创建与变量本身的创建是分开的 变量
books
存在,但它不是对象。它的值为可选值。无
以后可以将值(或引用)分配给可选变量,但这不会“使变量存在”;它一直存在,只是没有分配任何东西给它
分配给变量的对象、值或结构的创建与变量本身的创建是分开的 Swift的可选类型是使用枚举实现的
enum OptionalValue<T> {
case none
case some(T)
}
enum OptionalValue{
无案例
案例(T)
}
因此,当nil被分配给一个可选值时,我认为它有none
大小写被分配给它。并分配适当的内存
您可以在此处获得更多详细信息:-Swift的可选类型是使用枚举实现的
enum OptionalValue<T> {
case none
case some(T)
}
enum OptionalValue{
无案例
案例(T)
}
因此,当nil被分配给一个可选值时,我认为它有none
大小写被分配给它。并分配适当的内存
您可以在这里获得更多详细信息:-,正如阿克斯在他的回答中所说,可选的是一个包含两个可能值的枚举,
。一些
和。无
引用Aks的答案(以及苹果的文档):
enum OptionalValue{
无案例
案例(T)
}
.none
案例不包含关联的值
.some
案例包含关联的值
Swift枚举是使用泛型定义的,因此您可以使用可选的类型,如optional(Int)
创建可选的枚举时,定义的是枚举。该枚举存在。把它想象成一个盒子。该框可能是空的(
.none
大小写),也可能包含某些内容(.some
大小写),但该框在创建时存在 正如阿克斯在回答中所说,可选的是一个包含两个可能值的枚举,.some
和.none
引用Aks的答案(以及苹果的文档):
enum OptionalValue{
无案例
案例(T)
}
.none
案例不包含关联的值
.some
案例包含关联的值
Swift枚举是使用泛型定义的,因此您可以使用可选的类型,如optional(Int)
创建可选的枚举时,定义的是枚举。该枚举存在。把它想象成一个盒子。该框可能是空的(
.none
大小写),也可能包含某些内容(.some
大小写),但该框在创建时存在 nil对象为nil且没有值。可选变量可以包含值,但不能保证该值。nil对象为nil且没有值。可选变量可以包含一个值,但不能保证该值。