在某个地方,您显然有一个调用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 关注
- 177 浏览
添加回答
举报
0/150
提交
取消