上QQ阅读APP看书,第一时间看更新
1.3.1 “少即是多”的设计哲学
Go语言的设计哲学是“少即是多”,它没有太多的创新,语法糖也少,只有25个关键字,但是它却支持面向接口编程、并发、垃圾回收、内存自动管理等功能,同时它还像C语言一样简洁,且支持C语言函数的调用。
Go语言的“少”使得开发者可以快速上手,且开发效率很高。Go语言的代码简洁易读,编译速度也很快。
下面的代码实现了调用API查询天气预报并返回最高和最低温度的功能。
type Weather struct{}
//调用 API 查询天气预报并返回最高和最低温度
func (w *Weather) GetTemperature(cityId string) (float64, float64, error) {
var url string
resp, err := http.Get(url)
if err != nil {
return 0, 0, err
}
defer resp.Body.Close()
var data struct {
Main struct {
city string `json:"city"`
tempHigh float64 `json:"tem1"`
tempLow float64 `json:"tem2"`
updateTime time.Time `json:"update_time"`
} `json:"main"`
}
if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
return 0, 0, err
}
return data.Main.tempHigh, data.Main.tempLow, nil
}
这段代码虽行数不多,但清晰地展示了Go语言的各种特性。它使用了结构体、方法、多返回值函数、defer关键字、指针和标准库,且实现了简单声明变量、错误处理和序列化等功能。