Ios 如何在Swift中描述零对象的存在及其价值?

Ios 如何在Swift中描述零对象的存在及其价值?,ios,swift,optional,Ios,Swift,Optional,可以说Swift中存在一个零对象吗? 以声明为可选类型的数组为例 var books : [Book]? 这个数组一开始是一个nil对象,但它是否仍然存在,因为它被声明为可选的,这表明它在某个点上可能有一个值 就正确描述和理解nil对象而言,这是否准确:“nil对象还不存在,也没有值,但后来可能通过给定值而存在”在Swift中,可选项可以包含nil,但nil本身表示没有值。当你写下你所描述的东西时: var books : [Book]? 空间被分配为将来可能包含某些内容,它被初始化为可选,

可以说Swift中存在一个零对象吗? 以声明为可选类型的数组为例

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且没有值。可选变量可以包含一个值,但不能保证该值。