Go 的「goto」語句及其目的
與過去將「goto」語句作為程式設計實踐的普遍看法相反, Go 令人驚訝地將它們包含在其語法中。儘管人們普遍認為函數和方法對於流量控制來說更優越,但關於這項決定背後的理由仍然存在疑問。
Google 包含「goto」的動機
Go 程式庫中「goto」語句的存在表示它們有特定的用途。檢查 Go 標準函式庫的原始程式碼可以發現明智地使用“goto”的實例。
數學庫中的範例
在math/gamma.go 中檔案中,「goto」的使用方式如下:
for x < 0 { if x > -1e-09 { goto small } z = z / x x = x + 1 } for x < 2 { if x < 1e-09 { goto small } z = z / x x = x + 1 } // (Rest of the code omitted) small: if x == 0 { return Inf(1) } return z / ((1 + Euler*x) * x) }
在此範例中,「gotosmall」語句允許從巢狀循環中簡潔且易於理解地退出,而不需要控制流的輔助變數。這透過消除不必要的複雜性來簡化程式碼的可讀性和可維護性。
對「goto」的限制
需要注意的是,Go 的「goto」語句是受約束的到一定的限制。它不能用於跳過進入作用域或進入不同程式碼區塊的變數。這些限制確保「goto」得到負責任的使用,並且不會損害程式碼的清晰度或可預測性。
以上是為什麼 Go 包含「goto」語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!