空切片与空指针相同吗?
Is an empty slice the same as a null pointer?
下面的空切片是不是和空指针一样?
slice = Slice(UInt8).empty
slice.size # => 0
#empty
的source code表示空指针(地址0,大小0):
def self.empty
new(Pointer(T).null, 0)
end
这是 Null-Object 模式的应用:
空切片可以用在所有需要切片的地方,不需要显式的 Nil-Checks。
一个类似的例子是在 nil 上返回一个空字符串,或者拥有一个与普通用户具有相同属性的 GuestUser。
下面的空切片是不是和空指针一样?
slice = Slice(UInt8).empty
slice.size # => 0
#empty
的source code表示空指针(地址0,大小0):
def self.empty
new(Pointer(T).null, 0)
end
这是 Null-Object 模式的应用:
空切片可以用在所有需要切片的地方,不需要显式的 Nil-Checks。
一个类似的例子是在 nil 上返回一个空字符串,或者拥有一个与普通用户具有相同属性的 GuestUser。