據我所知(從here,以及從閱讀standerd庫),處理庫中的錯誤的idomatic方式返回您的數據和錯誤。返回結構時出現錯誤處理
問題是,當我運行時必須返回一個錯誤,我作爲數據返回什麼?一個空的結構? 0?
下面是一個例子
// Load the config
func LoadConfig(location string) (Config, error) {
// Read the file
configFile, err := ioutil.ReadFile(location)
if err != nil {
return Config{}, err
}
// Convert it to Config struct
var config Config
json.Unmarshal(configFile, &config)
return config, nil
}
這是慣用的?
除了你的問題(已經有一個很好的答案),有一點需要注意 - 在你的例子中,你當然也應該從'json.Unmarshal'返回錯誤。 – 2014-12-05 12:51:54
@Not_a_Golfer謝謝,我錯過了那一個。 – giodamelio 2014-12-05 13:08:23