讀取Optional例項中的變數值的方法

2021-10-11 01:47:43 字數 685 閱讀 3795

 get()是這些方法中最簡單但又最不安全的方法。如果變數存在,它直接返回封裝的變數

值,否則就丟擲乙個nosuchelementexception異常。所以,除非你非常確定optional

變數一定包含值,否則使用這個方法是個相當糟糕的主意。此外,這種方式即便相對於

巢狀式的null檢查,也並未體現出多大的改進。

 orelse(t other) 它允許你在optional物件不包含值時提供乙個預設值。

 orelseget(supplier<? extends t> other)是orelse方法的延遲呼叫版,supplier

方法只有在optional物件不含值時才執行呼叫。如果建立預設值是件耗時費力的工作,

你應該考慮採用這種方式(藉此提公升程式的效能),或者你需要非常確定某個方法僅在

optional為空時才進行呼叫,也可以考慮該方式(這種情況有嚴格的限制條件)。

 orelsethrow(supplier<? extends x> exceptionsupplier)和get方法非常類似,

它們遭遇optional物件為空時都會丟擲乙個異常,但是使用orelsethrow你可以定製希

望丟擲的異常型別。

 ifpresent(consumer<? super t>)讓你能在變數值存在時執行乙個作為引數傳入的

方法,否則就不進行任何操作。

C 程式中讀取CmakeList中定義的變數

有時候我們可能需要使用cmakelists.txt中定義的變數,這裡給出乙個實際例子。首先,在cmakelists中定義變數,這裡必須用add definitions 來實現。cmake minimum required version 3.15 project test version 0.1.0...

Swift中的Optional型別

swift當中的optional型別,表明乙個變數可能有確認的值,也可能不包含任何值。不包含任何值在swift當中,就是乙個nil。swift當中的變數或者常量,在使用之前必須得賦值,但是對於optional型別來說,情形有點不一樣。對於optional變數來說,使用之前可以不用賦值 var a i...

Swift中的Optional型別

swift當中的optional型別,表明乙個變數可能有確認的值,也可能不包含任何值。不包含任何值在swift當中,就是乙個nil。swift當中的變數或者常量,在使用之前必須得賦值,但是對於optional型別來說,情形有點不一樣。對於optional變數來說,使用之前可以不用賦值 var a i...