Go语言随机数生成及同步异步接口示例
Go语言随机数使用示例
在Go语言中,可以使用math/rand
包来生成随机数。
以下是一个简单的示例,演示如何生成不同类型的随机数:
package main
import (
'fmt'
'math/rand'
'time'
)
func main() {
// 设置随机数种子,保证每次运行结果不同
rand.Seed(time.Now().UnixNano())
// 生成0-99之间的随机整数
fmt.Println('随机整数:', rand.Intn(100))
// 生成0.0-1.0之间的随机浮点数
fmt.Println('随机浮点数:', rand.Float64())
// 生成指定范围内的随机浮点数
fmt.Println('指定范围内的随机浮点数:', rand.Float64()*(10.0-5.0)+5.0)
}
Go语言同步和异步接口示例
同步接口示例
以下是一个简单的同步接口示例:
package main
import (
'fmt'
'net/http'
)
func main() {
http.HandleFunc('/', handler)
http.ListenAndServe(':8080', nil)
}
func handler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, 'Hello World!')
}
在上述代码中,handler
函数处理HTTP请求并返回响应。由于该函数是同步执行的,因此在函数返回之前,客户端会一直等待响应。
异步接口示例
以下是一个简单的异步接口示例:
package main
import (
'fmt'
'net/http'
)
func main() {
http.HandleFunc('/', handler)
http.ListenAndServe(':8080', nil)
}
func handler(w http.ResponseWriter, r *http.Request) {
go func() {
fmt.Println('异步执行...')
}()
fmt.Fprintf(w, 'Hello World!')
}
在上述代码中,我们在handler
函数内部使用go
关键字启动了一个新的goroutine。
这个goroutine会异步执行,不会阻塞主线程。因此,客户端可以立即收到'Hello World!'的响应,而goroutine则在后台继续执行。

原文地址: http://www.cveoy.top/t/topic/juo0 著作权归作者所有。请勿转载和采集!