Google app engine 为什么我的随机数不更新?

Google app engine 为什么我的随机数不更新?,google-app-engine,go,random,Google App Engine,Go,Random,我在阿彭金主持的Golang做以下工作 每当我通过运行dev_appserver命令启动应用程序并在localhost:8080访问页面时,我都会得到一个新的随机数介于1和19之间的页面。但在浏览器中刷新页面时,此数字不会更改。如果我杀死服务器并通过运行dev_appserver重新启动,我会得到一个新的随机数。如何在页面刷新时获取要更新的随机数 代码如下: 包测试页 import ( "fmt" "net/http" "math/rand" "time"

我在阿彭金主持的Golang做以下工作

每当我通过运行dev_appserver命令启动应用程序并在localhost:8080访问页面时,我都会得到一个新的随机数介于1和19之间的页面。但在浏览器中刷新页面时,此数字不会更改。如果我杀死服务器并通过运行dev_appserver重新启动,我会得到一个新的随机数。如何在页面刷新时获取要更新的随机数

代码如下:

包测试页

import (
    "fmt"
    "net/http"
    "math/rand"
    "time"
    "strconv"
)

func init() {
    http.HandleFunc("/", handler)
}

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprint(w, varHtml)
}
func random(min, max int) int {
    rand.Seed(time.Now().Unix())
    return rand.Intn(max - min) + min
}

var myrand = strconv.Itoa(random(1, 19))
var varHtml = `

Random number is ` + myrand 
varHtml是一个包级变量,只计算一次

您应该将其移动到处理程序,如下所示:

func handler(w http.ResponseWriter, r *http.Request) {
    var varHtml = `Random number is ` + strconv.Itoa(random(1, 19))
    fmt.Fprint(w, varHtml)
}
而且也没有必要每次都播种兰德

最好在包初始化时执行此操作:

varHtml是一个包级变量,只计算一次

您应该将其移动到处理程序,如下所示:

func handler(w http.ResponseWriter, r *http.Request) {
    var varHtml = `Random number is ` + strconv.Itoa(random(1, 19))
    fmt.Fprint(w, varHtml)
}
而且也没有必要每次都播种兰德

最好在包初始化时执行此操作: