go语言单向通道
go语言单向通道 在某些场景下我们可能会将通道作为参数在多个任务函数间进行传递,通常我们会选择在不同的任务函数中对通道的使用进行限制,比如限制通道在某个函数中只能执行发送或只能执行接收操作。 想象一下,我们现在有`Producer`和`Consumer`两个函数,其中`Producer`函数会返回一个通道,并且会持续将符合条件的数据发送至该通道,并在发送完成后将该通道关闭。...
go语言单向通道 在某些场景下我们可能会将通道作为参数在多个任务函数间进行传递,通常我们会选择在不同的任务函数中对通道的使用进行限制,比如限制通道在某个函数中只能执行发送或只能执行接收操作。 想象一下,我们现在有`Producer`和`Consumer`两个函数,其中`Producer`函数会返回一个通道,并且会持续将符合条件的数据发送至该通道,并在发送完成后将该通道关闭。...
go 并发编程 之 channel(go channel) channel {#autoid-0-2-7} ----------------------- (简单理解就是一个队列) ------------ 单纯地将函数并发执行是没有意义的。函数与函数间需要交换数据才能体现并发执行函数的意义。 虽然可以使用共享内存进行数据交换,但是共享内存在不同的 goroutine ...
为什么很多人不用PHP ,java 了, 因为go 天生支持 并发。 充分利用现代CPU的多核优势, 比如我们把go程序放到服务器上, 就可以跑满。 java 是os 调用了 一个线程池。 go 比较 轻量级,比如 同样开10万个线程, go 是毫无压力的, java 就有可能崩了。 ### 串行、并发与并行 {#autoid-0-1-0} 串行:我们都是先读小学,小...
go 结构体与JSON序列化 与反序列化 {#autoid-2-12-0} ------------------------------------- ![](http://static.51tbox.com/static/2024-08-29/col/0390d103b1d040ed371b634fc4990b08/99d7d9bdffd64a1186de4d44463b1...
[go](https://51tbox.com/ "View all posts in go")的结构体标签(Tag) `Tag`是结构体的元信息,可以在运行的时候通过反射的机制读取出来。 `Tag`在结构体字段的后方定义,由一对**反引号**包裹起来,具体的格式如下: `key1:"value1" key2:"va...
go结构体反射 ,比较难理解 相当于,我们自己写一个 json.Unmarshal 的功能, 把值拿出来 赋给 结构体对应的字段。 任意值通过`reflect.TypeOf()`获得反射对象信息后,如果它的类型是结构体,可以通过反射值对象(`reflect.Type`)的`NumField()`和`Field()`方法获得结构体成员的详细信息。 `reflect.Type...
go解析 ini 配置文件 conf.ini [mysql] address=10.20.30.40 port=3306 username=root password=123456 #redis config [redis] xxxx= host=127.0.0....
go 标准库之 strconv 介绍 1.- 字符串 转化为 数字 2 -: 把数字转换成字符串类型 func testStrconv() { // 1.从字符串 解析出对应的数字 str := "10000" ss, err := strconv.ParseInt(str, 10, 64) if...
获取 go 执行代码的 文件名, 以及路径的方法: package main import ( "fmt" "path" "runtime" ) func getInfo(n int) { pc, file,...
//1.文件对象的类型 // 2.获取文件对象的详细信息 func fileSizetest() { filepath := "C:\\Users\\chaoren\\GolandProjects\\mylogger\\main\\main.go" fileObj, err := os.Op...