在某個地方,您顯然有一個調用newWindowsSpecificThing(). 那應該在特定于 Windows 的文件中。如果是,那么它不可用也沒有關系。你有一些東西“檢查它是否在 Windows 上運行”這一事實暗示了if runtime.GOOS == "windows"某處的聲明。而不是擁有它,而是將整個移動if到一個在 Windows 特定文件中定義的函數中。您還需要在!windows文件中定義該函數,這很好。作為我的代碼示例,我有一個函數:func Setup() *config { var cfg *config // setup portable parts of cfg return PlatformSpecificSetup(cfg)}然后我標記// +build windows了PlatformSpecificSetup()一個定義一種方式的文件,以及另一個// +build !windows定義另一種方式的標記。我從不需要檢查runtime.GOOS,也不需要處理未定義的數據類型。該config結構本身是在這些文件中定義的,所以它可以為每個平臺不同領域(只要他們同意足夠Setup())。如果我更加小心,我可以創建一個結構,如:type config struct { // independent stuff plat *platformConfig}然后只是platformConfig在每個平臺文件中定義,但在實踐中我發現這比它值得的麻煩更多。
1 回答

三國紛爭
TA貢獻1804條經驗 獲得超7個贊
希望這會有所幫助:
package main
import (
"fmt"
"io/ioutil"
"log"
"net/http"
)
func Error(err error) {
if err != nil {
log.Fatal(err)
}
}
func main() {
response, err := http.Get("http://www.oracle.com/")
Error(err)
defer response.Body.Close()
contents, err := ioutil.ReadAll(response.Body)
Error(err)
fmt.Printf("%s\n", contents)
}
更多詳情:https : //golang.org/pkg/net/http/
- 1 回答
- 0 關注
- 198 瀏覽
添加回答
舉報
0/150
提交
取消