cif
(cond1,()
->).
celseif((
)-> cond2,()
->).
celseif
(cond3,()
->).
celse((
)->
);
採用構造器配合方法鏈來實現,省略空指標檢測,主要類如下:
/**
* 整個語句塊的構造器
*/class
ifbuilder
/** * @param predicate 無條件求值的斷言
* @param action 要執行的動作
* @return 同下面 cif
*/public
static ifbuilder cif
(boolean predicate, runnable action)
/** * @param predicate 條件求值的斷言
* @param action 要執行的動作
* @return 如果斷言求值為 true, 就返回預設什麼都不做的 builder,否則返回具有後續 elseif 和 else 功能的 builder
*/public
static ifbuilder cif
(supplier
predicate, runnable action)).
get():
newifbuilder()
).get():
this;}
@override
public ifbuilder celseif
(boolean b, runnable r)
@override
public
void
celse
(runnable r)).
get())
.get()
;}};
}/* 對斷言條件求值的預設 else if, 無動作*/
public ifbuilder celseif
(supplier
b, runnable r)
/* 對斷言無條件求值的預設 else if, 無動作*/
public ifbuilder celseif
(boolean b, runnable r)
/* 預設 else, 無動作*/
public
void
celse
(runnable r)
}
示例**如下,其中 i 和 j 每次用隨機數生成
for
(int x =
0; x <
10; x++))
.celseif((
)-> i < j,()
->).
celseif
(i > j,()
->).
celse((
)->);
}
示例輸出:
-3 -1 : i < j
3 -3 : i > j
2 -2 : i > j
0 -1 : i == 0 || j == 0
-1 -2 : i > j
-1 -1 : i = j
-1 -2 : i > j
0 0 : i == 0 || j == 0
2 1 : i > j
2 1 : i > j
寫著玩的**,寫完自己都想吐槽了。看著用了一些高階的寫法,不僅完全沒有解決什麼問題,而且還帶來了很大的**複雜性。 程式設計師如何用「心「表白(結尾附原始碼)
有任何想要討論和學習的問題可聯絡我 zhuyc vip.163.com。四 案例原始碼 本案例更加適合在移動端豎屏開啟,本身也支援自適應,在選擇素材時需要注意一下比例。新增頁面和元件的具體用法檢視h5 index.js 在新增頁面或元件時,可以在其中定義通用的樣式 將選擇器名稱與引數一致即可生效 頁...
如何面試php程式設計師,如何面試PHP程式設計師
乙個包含中英文的字串如何獲得它的自然長度 看看ta是否有encoding的知識和意識 問一問什麼是orm,有時候會問這個詞的英文全稱是什麼,問問ta對於orm有什麼個人的看法?看看ta學習細不細,有沒有技術判斷,php開發人員應該知道什麼時候使用orm 問一問假如ta要自己去實現乙個framewor...
如何面試程式設計師
面試對於大多數開發人員來說是一項很基本的技能。一次失敗的招聘會造成很嚴重的長期的後果,二流的人會把三流的人帶進公司 一流人才僱一流人才,二流人才僱三流人才 另一方面,把優秀的應聘者拒之門外更是一種傷害。一場技術面試至少包括三部分。首先驗證簡歷的真實性,然後評估應聘者的經驗價值,最後測試應聘者的技術能...