[实践OK]golang随机数生成踩过的坑记录一下,在学习go的if和switch的变量作用域时遇到的。

jackxiang 2022-3-6 22:36 | |
cat short-if.go


go build short-if.go  
./short-if
1
SpaceX

./short-if
2
Virgin Galactic

./short-if
0
Space Adventures


如果不加:
        rand.Seed(time.Now().Unix())

其值一直是:2

原因是:https://blog.csdn.net/weixin_33816821/article/details/94581126


Go语言的switch语法学习之num的简短声明也可用于switch语句的一部分:


./short-switch
Virgin Galactic

./short-switch  
Random spaceline # 4


cat scope-rules.go   #几月有多少天的一个判断:



./scope-rules
AD 2018 10 24


        default:
            day := rand.Intn(31) + 1
            fmt.Println(era, year, month, day)
        }
        fmt.Println(month,day)  //作用域不再有了。
go build scope-rules.go      
# command-line-arguments
./scope-rules.go:22:14: undefined: month
./scope-rules.go:22:20: undefined: day


包括switch的每个case也是都拥有自己独立的作用域,每个分支里面的day变量在分支结束后,day变量将不再处于作用域之内,switch分支的作用域是唯一一种无需使用大括号标识的作用域。


cat random-date.go



#./random-date
AD 2018 11 30

#./random-date
AD 2018 11 30


研究下闰年:
cat random-date-study.go


./random-date-study
AD 2000 2 18
AD 2000 2 4
AD 2000 2 6
AD 2000 2 8
AD 2000 2 7
AD 2000 2 21
AD 2000 2 7
AD 2000 2 29
AD 2000 2 12
AD 2000 2 12

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/11243/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2022-3-6 23:37
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]