Windows 10 错误(0x0 0x0)[Golang/Window10/64位]
我用下面的Go脚本测试Golang Html/模板,结果得到错误(0x0 0x0)(浏览器页面从未加载)。但是,Javascript在相同的浏览器(Chrome,Edge)中加载良好。Windows 10 错误(0x0 0x0)[Golang/Window10/64位],windows-10,google-chrome,go,Windows 10,Google Chrome,Go,我用下面的Go脚本测试Golang Html/模板,结果得到错误(0x0 0x0)(浏览器页面从未加载)。但是,Javascript在相同的浏览器(Chrome,Edge)中加载良好。 如何解决此问题? (我在Windows10-64位上有一个未激活的版本。) 环境 set GOARCH=amd64 set GOBIN= set GOCACHE=C:\Users\User0\AppData\Local\go-build set GOEXE=.exe set GOFLAGS= set GOHOST
如何解决此问题?
(我在Windows10-64位上有一个未激活的版本。) 环境
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\User0\AppData\Local\go-build
set GOEXE=.exe
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=D:\Script\Golang
set GOPROXY=
set GORACE=
set GOROOT=C:\Go
set GOTMPDIR=
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set GCCGO=gccgo
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=
set CGO_CFLAGS=-g -O2
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-g -O2
set CGO_FFLAGS=-g -O2
set CGO_LDFLAGS=-g -O2
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0 -fdebug-prefix-map=C:\Users\User0\AppData\Local\Temp\go-build325815430=/tmp/go-build -gno-record-gcc-switches
脚本
package main
import (
// "fmt"
"html/template"
"log"
"math/rand"
"net/http"
"time"
// "golang.org/x/mobile/app"
)
func main() {
http.HandleFunc("/", randNum)
log.Fatal(http.ListenAndServe(":8080", nil))
}
func randNum(w http.ResponseWriter, r *http.Request) {
// Create random number
aRand := rand.Intn(100)
type RNumber struct {
A int
}
Rnum := RNumber{aRand}
//Show Template
Tmp1, err := template.New("randNum1").Parse("HTML NUMBER ======> {{.A}} ")
if err != nil {
print(err)
}
err = Tmp1.Execute(w, Rnum)
print(err)//<==========Error (0x0 0x0)
time.Sleep(3000 * time.Millisecond)
//Loop
randNum(w, r)
}
主程序包
进口(
//“fmt”
“html/模板”
“日志”
“数学/兰德”
“net/http”
“时间”
//“golang.org/x/mobile/app”
)
func main(){
http.HandleFunc(“/”,randNum)
log.Fatal(http.ListenAndServe(“:8080”,nil))
}
func randNum(w http.ResponseWriter,r*http.Request){
//创建随机数
aRand:=兰特国际(100)
类型RNumber结构{
整数
}
Rnum:=RNumber{aRand}
//显示模板
Tmp1,err:=template.New(“randNum1”).Parse(“HTML编号======>{{.A}”)
如果错误!=零{
打印(错误)
}
err=Tmp1.Execute(w,Rnum)
print(err)//您永远不会从http处理程序返回。生成输出后,您必须返回,以便刷新和终止连接。您不是在循环,您处于一个启用的递归中,该递归将永远不会终止并最终溢出堆栈。另外,print()是什么do?print
是一个内置函数,如len、cap、make、println等。它没有fmt的打印功能那么全面。我在重定向屏幕上的print
输出时遇到问题。(0x0 0x0)
是err
为nil
(不知道为什么,它看起来像是在打印两个字段,但如果是nil,则不应该有任何字段)。正如@bserdar所说,您正在递归调用底部的函数。您可能不想这样做。@CoreyOgburn我从来不知道有打印内置项。看起来它正在打印值的内部内容(错误是接口,0x0 0x0是接口的类型和值)@老实说,bserdarprint
和println
与其说是一种帮助,不如说是一种痛苦。它们不是fmt.print和fmt.println的替代品。它们不允许你格式化任何内容,也不以同样的方式打印结构,它们似乎直接打印到终端,而不是通过stdout。我只是避免它们。你永远不会重新使用它们从http处理程序重新启动。生成输出后,必须返回,以便刷新和终止连接。如果没有循环,则处于启用的递归中,该递归将永远不会终止并最终溢出堆栈。此外,print()还有什么作用do?print
是一个内置函数,如len、cap、make、println等。它没有fmt的打印功能那么全面。我在重定向屏幕上的print
输出时遇到问题。(0x0 0x0)
是err
为nil
(不知道为什么,它看起来像是在打印两个字段,但如果是nil,则不应该有任何字段)。正如@bserdar所说,您正在递归调用底部的函数。您可能不想这样做。@CoreyOgburn我从来不知道有打印内置项。看起来它正在打印值的内部内容(错误是接口,0x0 0x0是接口的类型和值)@老实说,bserdarprint
和println
与其说是一种帮助,不如说是一种痛苦。它们不是fmt.print和fmt.println的替代品。它们不允许你格式化任何内容,也不以同样的方式打印结构,它们似乎直接打印到终端,而不是通过stdout。我只是避免它们。