2013-10-07 48 views

回答

7

if/elsif/else鏈的大部分時間是最好的選擇 - 除非完全不同的東西比if/elsif/elsegiven/when,這實際上是相當往往更好。 「完全不同」的方法的例子是創建不同類型的對象來處理不同的場景,並讓方法調度爲你做你的工作,或者找到一個機會讓你的代碼更多的數據驅動。這兩種方法,如果它們合適,而且你做得對,可以大大減少代碼中「switch語句」結構的數量。

+6

換句話說,這個推薦是回到引入'given-when-default'之前使用的編碼風格! **我發現非常令人沮喪,** – lexu

0

作爲補充,我發現'for'和if/elsif/else的組合很好,如果你有一些給定/當/默認代碼需要快速更新。只需將given替換爲for並用級聯的if & elsif替換when語句,並用else替換default即可。這允許所有測試隱含地繼續使用$_,需要更少的重寫。 (但請注意,其他特殊的智能匹配功能將不再工作。)

這只是用於重寫已使用given/when的代碼。爲了編寫新的代碼,@ hobbs有正確的答案。

+0

還要注意,'given'內的'next'將表現得與'for'內的'next'不同。 –

相關問題