Go 语言团队否决关于"try"语句的提案
Go 語言作者之一Robert Griesemer 前幾天代表 Go 語言開發團隊的提案審查委員會公布了關于否決一項提案的決定。Robert 在「內置的 Go 錯誤檢查函數,"try"」提案下面的回復中發布了這個公告,并表示基于社區壓倒性的反應和由此引起的廣泛討論,團隊決定提前拒絕此項提案。
關于 Go 2 的錯誤處理問題,Robert 表示團隊去年就已闡述了對此的看法,但當時并沒引起足夠的注意和討論。所以關于"try"語句的提案可能是解決此問題的一個很好的解決方案,但對于大多數使用者而言,這可能沒解決到什么問題。
下面舉一個 try 語句的示例。
例如如下代碼:
可通過使用 try 語句簡化為:
可以看到,內置函數 try 采用一個單一表達式作為參數。表達式必須求出n+1個值(其中 n 可能為零),其中最后一個值必須是error類型。如果錯誤參數(final)為 nil,則返回前 n 個值(如果有),否則返回帶有該錯誤的封閉函數。
這種方法最主要的缺點是需要對錯誤結果參數進行命名,為此可能會導致 API 不夠美觀。總而言之,一開始try看起來就有點不尋常,因為它只是針對一個特定任務量身定制的語法糖,使用較少的樣板代碼進行錯誤處理,并且能足夠好地處理該任務。不過它非常符合 Go 的哲學 ——try不是為解決所有錯誤處理情況而設計的;它旨在很好地處理最常見的情況,以保持設計簡單明了。
總結
以上是生活随笔為你收集整理的Go 语言团队否决关于"try"语句的提案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小米通报内部贪腐,两位市场部员工被移送公
- 下一篇: 法国人不“玩”了 派诺特已全清迷你无人机