空切片是否与空指针相同?

时间:2018-03-18 21:35:22

标签: crystal-lang

以下空切片是否与空指针相同?

slice = Slice(UInt8).empty
slice.size # => 0

#empty的{​​{3}}表示空指针(地址0和大小0):

  def self.empty
    new(Pointer(T).null, 0)
  end

1 个答案:

答案 0 :(得分:0)

这是Null-Object模式的应用程序:

空切片可以在所有需要规则切片的地方使用,而无需显式的Nil-Checks。

一个类似的例子是在nil上返回一个空字符串,或者让GuestUser具有与常规User相同的属性。