golang go随机数 我们在通过go获取随机数时,会发现每次获取的均一致,如下面的程序,无论执行多少次,打印的结果均是81、87、47、59 for i := 0; i < 40; i++ { println(rand.Intn(100)) } 81 87 47 59 这是因为在默认情况下,go的rand会使用相同的源来产生一个确定的伪随机数序列,即产生一个不变的数列。 由于源代码已经发布到 Go 的官方标准库中,因此任何运行此程序的计算机都会得到相同的结果。 但是,由于 Go
golang golang之udpConn golang进行UDP client/server通讯的过程中发现Read/ReadFromUDP/Write/WriteToUDP的使用,还有connection/unconnection较乱。 代码实验 UDP server UDP服务器端在调用”net.ListenUDP()“后创建”net.UDPConn”,read/write操作是通过这个UDPConn来完成的。因为listen的时候只指定了本地绑定的地址,它只能被动的接收来自客户端的消息,因此这个UDPConn在golang中为’unconnected’类型的。 这种类型的UDPConn的读操作可以接受Read()及ReadFromUDP()。区别是Read()无法知道远程连接的地址信息而ReadFromUDP()可以,所以如果后续需要跟远程进行双向通讯需要使用ReadFromUDP()。 这种类型的UDPConn在进行写操作时必须使用WriteToUDP()完成,并且需要指定对方的地址信息。
golang golang获取变量的类型 package main import ( "reflect" ) func main() { slice :=[] int {1,2,3 } println(reflect.TypeOf(slice).Name(),reflect.TypeOf(slice).Kind()) i:=1 println(reflect.TypeOf(i).Name(),reflect.TypeOf(i).Kind(
golang go语言查找出不同切片的差异 package main import ( "github.com/fatih/set" ) /** 如何查找出不同切片的差异 */ func main() { println("定义两个切片") s1 :=[] int {1,2,3 } s2 :=[] int {6,2,3 } println("创建两个set") set1 := set.New(
golang Go语言函数形参中类型前的三个点"..."的用途 请求方法时,使用"..." 将切片拆散(扩展) slices := make([]int, 6) FunName(slices ...) //将切片slices(含有6个int型元素)拆散成单个int型作为参数调用函数slices 声明方法时,使用"..." 为函数定义多个可选参数,比如: func FunName(args ...int){ //TODO:代码逻辑 } //函数FunName接受任意数量的int参数 FunName(arg1) FunName(arg1,arg2)
golang GOLANG之signal golang通过signal接受用户的停止信号,并在停止时进行某操作 package main import ( "os" "os/signal" "syscall" "fmt" ) func main() { // Go signal notification works by sending `os.Signal` // values on a channel. We'll
golang golang之连接mysql go get github.com/go-sql-driver/mysql 查询demo db, err := sql.Open("mysql", config.GetMysqlLink("test",store_type)) if err!= nil{ panic(err) } defer db.Close() sql:="select b2c_