package main import ( "math/rand" "time" "fmt" ) func InitData(p *int) { rand.Seed(time.Now().UnixNano()) var num int //这里为什么不写成自动推导类型呢?因为如果写成自动推导类型,那就肯定需要写在for的循环里面,那样在for循环外面就无法给*p传值(因为作用域的关系) for { num = rand.Intn(10000) if num >= 1000 { break } } *p = num } func main() { var num int InitData(&num) fmt.Printf("random num is %d ", num) }
执行的结果为
random num is 5155