前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(重载)厚土Go学习笔记 | 02. 打印当前时间time.Now()时不我待

(重载)厚土Go学习笔记 | 02. 打印当前时间time.Now()时不我待

作者头像
李海彬
发布2018-07-26 10:33:23
3480
发布2018-07-26 10:33:23
举报
文章被收录于专栏:Golang语言社区Golang语言社区

菅俊菠,70后IT人,程序员到产品经理/项目经理,先后涉猎教育、企管、煤矿、电商等多个领域的系统开发和团队管理工作。擅长业务分析、团队管理,关注前沿技术,目前注意力在golang、kotlin。微信号:hotu2010

共 753 字,阅读需 2 分钟

需要引用外部的库才可以有各种丰富的功能,即使是时间函数也是一样。

代码语言:javascript
复制
package main

import(
    "fmt"
    "time"
)

func main(){
    fmt.Println("Welcome to the cofox ground.")
    fmt.Println("The time is", time.Now())
}

想打印,就要引用fmt,想打印出时间来,就要引用time了。

厚土Go学习笔记 | 03. 数学运算的随机数

共 1360 字,阅读需 3 分钟

总是要有使用随机数的情况。这就需要使用math包。

代码语言:javascript
复制
package main

import(
    "fmt"
    "math/rand"
)

func main(){
    fmt.Println("My random number is",  rand.Intn(190))
}

如果你运行这个程序,就会发现每次返回的随机数是不变的。因为运行环境是没有发生变化的。

为了每次得到不同的随机数,就需要一个随机数种子。

代码语言:javascript
复制
package main

import(
    "fmt"
    "math/rand"
    "time"
)

func main(){
    r := rand.New(rand.NewSource(time.Now().UnixNano()))
    fmt.Println("My random number is", r.Intn(190))
}

时间是不停的在发生变化的,利用time.Now().UnixNano()获得一个带纳秒的时间戳,形成一个新源。然后随机数就可以有想要的效果了。

当然也可以再简单一点点

代码语言:javascript
复制
package main

import(
    "fmt"
    "math/rand"
    "time"
)

func main(){
    rand.Seed(time.Now().UnixNano())
    fmt.Println("My random number is", rand.Intn(190))
}

随机数是由一个Source生成的,而Float64和Int这样的顶级函数默认是使用共享的Source的,Seed函数用来初始化默认的Source。

对于多Go程并发来说,默认的Source是安全的。

【注意】rand.Intn(190)是要生成一个[0-190)之间的整数。190的圆括号表示不包含190这个数字。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 厚土Go学习笔记 | 03. 数学运算的随机数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档