W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
在很多情況下, 你可能會碰到一些可能存在也可能不存在的變量. 為了處理這種
情況, Julia 提供了參數(shù)化的數(shù)據(jù)類型 Nullable{T}
, 可以被當(dāng)做是一種特
殊的容器, 里面有 0 個或 1 個數(shù)據(jù). Nullable{T}
提供了最小的接口以保
證對可能是空值的操作是安全的. 目前包含四種操作 :
Nullable
對象.Nullable
是否含有數(shù)據(jù).Nullable
內(nèi)部的數(shù)據(jù), 如果沒有數(shù)據(jù)可被返回, 拋出
NullException
.Nullable
內(nèi)部的數(shù)據(jù), 如果沒有數(shù)據(jù)可被返回, 返回數(shù)據(jù)類型
T
的默認值.Nullable
對象使用 Nullable{T}()
函數(shù)來創(chuàng)建一個關(guān)于類型 T
的可空對象 :
x1 = Nullable{Int}()
x2 = Nullable{Float64}()
x3 = Nullable{Vector{Int}}()
使用 Nullable(x::T)
函數(shù)來創(chuàng)建一個非空的關(guān)于類型 T
的可空對象 :
x1 = Nullable(1)
x2 = NUllable(1.0)
x3 = Nullalbe([1, 2, 3])
注意上面兩種構(gòu)造可空對象方式的不同: 對第一種方式, 函數(shù)接受的參數(shù)是類型
T
; 另一種方式中, 函數(shù)接受的是單個參數(shù), 這個參數(shù)的類型是 T
.
Nullabe
對象是否含有數(shù)據(jù)使用 isnull
函數(shù)來檢查 Nullable
對象是否為空 :
isnull(Nullable{Float64}())
isnull(Nullable(0.0))
Nullable
對象的內(nèi)部數(shù)據(jù)使用 get
來安全地訪問 Nullable
對象的內(nèi)部數(shù)據(jù) :
get(Nullable{Float64}())
get(Nullable(1.0))
如果沒有數(shù)據(jù), 正如 Nullable{Float64}
, 拋出 NullException
錯誤.
get
函數(shù)保證了任何訪問不存在的數(shù)據(jù)的操作立即拋出錯誤。
在某些情況下, 如果 Nullable
對象是空的, 我們希望返回一個合理的默認值。我們可以將這個默認值穿遞給 get
函數(shù)作為第二個參數(shù) :
get(Nullable{Float64}(), 0)
get(Nullable(1.0), 0)
注意, 這個默認的參數(shù)會被自動轉(zhuǎn)換成類型 T
。例如, 上面的例子中, 在
get
函數(shù)返回前, 0
會被自動轉(zhuǎn)換成 Float64
. get
函數(shù)可以
設(shè)置默認替換值這一特性使得處理未定義變量變得非常輕松.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: