gpt4 book ai didi

google-app-engine - 为什么我的随机数没有更新?

转载 作者:IT王子 更新时间:2023-10-29 01:50:02 25 4
gpt4 key购买 nike

我正在 Golang 中执行以下操作(托管在 Appengine 上)

每当我通过运行 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)
}

也不需要每次都播种兰特。

最好在包 init() 中执行:

func init() {
rand.Seed(time.Now().Unix())
}

func random(min, max int) int {
return rand.Intn(max - min) + min
}

关于google-app-engine - 为什么我的随机数没有更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46832959/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com