Go
这不是一门语言, 而是一套新的方法论
go是世界上最好的语言!
静谧之心
专业摩的佬
业余吉他手
退役喷子
展开
-
每期一个小窍门: go不同项目之间的引用
那么你有一个包moda, 放在/home/aio/moda下面, 然后你想用go mod, 那么会执行go mod init A包名。然后你的modb也需要用go mod, 所以你执行go mod init modb。然后你就得到了go.mod文件。不出意外的话, 应该就引用到了。原创 2024-01-28 13:02:54 · 195 阅读 · 0 评论 -
golang视角下 protobuf 的安装 从proto文件到go文件
Protocol Buffers(protobuf)是一种由Google开发的轻量级、高效的数据序列化格式。它设计的目的是为了在不同系统之间进行数据交换,同时保持数据的结构化和高效传输。原创 2024-01-25 18:27:01 · 604 阅读 · 0 评论 -
go: 高性能json工具 easyjson 简介
【代码】go: 高性能json工具 easyjson 简介。原创 2023-08-27 13:40:48 · 689 阅读 · 0 评论 -
解决 go mod tidy 加载模块超时
如果go mod tidy 加载模块超时。原创 2023-08-23 13:48:36 · 1316 阅读 · 0 评论 -
每期一个小窍门: go 实现单例
go语言实现单例很简单 不需要类似java的double check 双重锁这种。通过 sync.Once 的once.Do() 只运行一次来实现。原创 2023-08-19 10:30:00 · 54 阅读 · 0 评论 -
每期一个小窍门: go 中 不确定的select语句
由于 goroutine 的执行顺序不确定,所以这里也不确定到底是该输出 42 43 还是 The default case!,可以用下面的脚本执行 5000 次看看(大家把下面的脚本保存成 for.sh,然后 chmod a+x for.sh,接着 ./for.sh)然后到 for.txt中看输出,大部分都是 default,很小部分是 42 和 43。所以他还是会优先的选择 case 去执行,只是我们不要写这种 select,一旦写了,我们大抵要为这种不确定性付出代价。原创 2023-08-15 23:24:40 · 68 阅读 · 0 评论 -
每期一个小窍门: 通过 两个小例子 玩转go channel
通道类似一个没有持久化功能的, 完全基于内存的, 消息队列原创 2023-08-15 00:15:32 · 172 阅读 · 0 评论 -
编程小窍门: 一个简单的go mutex的小例子
【代码】编程小窍门: 一个简单的go mutex的小例子。原创 2023-08-14 22:37:18 · 472 阅读 · 0 评论 -
深入理解 go协程 调度机制
Go 启动的时候,会有一个守护线程 G0,计数,会记录每个 Processor 运行完成的协程的数量,如果发现某一个 Processor 在一段时间内没有发生变化(阻塞),就会往这个协程的任务栈里面插入一个特殊的标记,当协程运行遇到非内联函数,就会读到这个标记,将自己中断下来,插到等待协程队列的队尾,切换到其他队列的队尾。内核线程是由CPU直接调度,如果一个用户线程对应一个内核线程,调度效率来看肯定是快于多个用户线程对应一个内核线程的。当协程被中断的时候,它在寄存器中的运行状态,也会保存在协程对象中;原创 2023-08-14 14:08:58 · 557 阅读 · 0 评论 -
每期一个小窍门: 玩转go mod 命令
这个工具类的 package name = util666。这个工具类的 物理路径是 = test666/util。可以使用下面两个命令来确保依赖正常加载。挎包调用需要大写 方法/变量 首字母。test666 是自身的mod名称。当然 你也可以使用别名来调用。main中引用了 一个工具类。原创 2023-08-13 21:58:35 · 274 阅读 · 2 评论 -
每期一个小窍门: go处理异常的一些小窍门
判断异常时, 异常逻辑在前, 即使有复杂业务逻辑判断, 也同样是扁平结构。go设计者更偏向于C的error处理方式, 快速失败是更简单高效的。我们可以利用error接口和多返回值来实现异常传递。error可以利用变量来复用 等价判断。没有类似java的exception。原创 2023-08-13 13:05:04 · 123 阅读 · 1 评论 -
每期一个小窍门: go 的小接口多组合思想
go中的接口更加灵活。原创 2023-08-12 21:51:42 · 109 阅读 · 1 评论 -
每期一个小窍门: go语言的两种接受者
在 Go 语言里,方法和函数只差了一个,那就是方法在 func 和标识符之间多了一个参数。我们可以看到,方法是在 func 和 notify 之间多了一个 user 类型的参数 u ,这个 u 就称作接收者。原创 2023-08-12 16:51:11 · 168 阅读 · 0 评论 -
每期一个小窍门: go中通过函数式编程, 将目标方法计时
【代码】每期一个小窍门: go中通过函数式编程, 将目标方法计时。原创 2023-08-09 23:30:45 · 66 阅读 · 0 评论 -
每期一个小窍门: 关于 go 的 iota 计数器
准确的说:iota出现在const语句块中的第几行,那么它就是几,当然这里的行数的索引也是以0为开始。因为iota一般出现在const语句块的第一行,不少的初学者会将之认为iota就是0,这是不对的。const中每新增一行常量声明将使iota计数一次,当然前提是iota在const中出现。iota是常量的计数器,可以理解为const定义常量的行数的索引,注意是行数。原创 2023-08-08 17:48:46 · 113 阅读 · 0 评论 -
GoLang 快速入门 合理实用常量
go的常量很方便iota 是一个只能在常量表达式中使用的一个标识符, 是一个常量计数器, 初始值为0, 新增一行, 下面的常量会+1下面是关于常量的小例子package constant_testimport "testing"/*constant 012*/const ( a = iota + 1 // 1 b // 2 c // 3)/*constant 可以跳过*/const ( a = iota + 1 // 1原创 2022-02-15 11:27:19 · 351 阅读 · 1 评论