
Go
文章平均质量分 78
Go语言相关知识点学习记录
NJU_lemon
这个作者很懒,什么都没留下…
展开
-
【踩坑】反序列化+引用+全局变量
下面这段代码的初衷是给 config.Cluster字段先赋值一个,然后根据conf 配置【json 字符串】来覆盖config.Cluster字段,如果conf 配置中没有 cluster这个key,config.Cluster就会保持默认值。原创 2023-10-24 17:13:18 · 217 阅读 · 0 评论 -
Go json反序列化“null“踩坑
Go json反序列化"null"踩坑原创 2023-03-12 18:26:02 · 1370 阅读 · 1 评论 -
gorm 修改事务维度的隔离级别
gorm修改事务隔离级别原创 2022-07-26 11:42:46 · 1787 阅读 · 0 评论 -
Go json反序列化“null“结果为nil踩坑
先说结论,“null"是json的一个关键字,jsoniter这个库【其他库没测】在进行json序列化时,会把nil【即指针类型(比如slice、map和*T)的未初始化时的形态】序列化为字符串"null”,反序列化时会把字符串"null",如果目标类型是指针类型,则会反序列化为nil,但是目标结构体内部的自定义type的指针类型不会成为nil【见测试代码图二的mal的E字段,但这就有点不懂为啥了…】建议对**“null”**进行一下特殊处理,或者序列化空指针类型需要注意的是fmt很多时候打印nil的指针类原创 2022-07-13 12:16:32 · 3249 阅读 · 0 评论 -
Golang函数内slice进行append时不改变外部值问题
Golang函数内slice进行append时不影响外部值问题这个标题…在看完这篇文章之后应该就能知道,这么说是不正确的,虽然看起来好像是这样的,哈哈哈哈问题引入:下面这样一段代码会输出什么?func main() {array := make([]int, 3, 4)array[0] = 0array[1] = 1array[2] = 2fmt.Printf(“main before: len: %d cap:%d data:%+v\n”, len(array), cap(array),原创 2021-12-01 22:48:14 · 1655 阅读 · 0 评论 -
Go函数传参:值传递&用明白Go的指针
Golang函数传参:值传递不杠哦,Go语言里面就是没有引用传递先拿C语言说话,解释一下值传递、指针传递和引用传递的含义值传递:形参是实参的拷贝,改变形参的值并不会影响外部实参的值,是将实参的值拷贝到另外的内存地址中才修改。从被调用函数的角度来说,值传递是单向的(实参->形参),参数的值只能传入,不能传出。当函数内部需要修改参数,并且不希望这个改变影响调用者时,采用值传递。指针传递:形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作;指针传递参数本质上是值传递的方原创 2021-11-29 22:16:28 · 6962 阅读 · 6 评论 -
Golang常量无法取地址
Golang常量无法取地址今天在尝试取常量的地址时出现了报错,会有这样一些场景,嵌套型的struct有些字段是string或者intpackage maintype Obj struct { Prop1 *string Prop2 *int}func main() { obj := Obj{ Prop1: &"a string property", Prop2: &5, }}//报错:Cannot take the addr原创 2021-11-29 20:00:45 · 5631 阅读 · 0 评论 -
Golang 循环体中的闭包和go func变量取值问题[延迟绑定]
Golang 循环体中的闭包和go func变量取值问题闭包定义举例说明循环体中闭包变量的延迟绑定问题举例说明goroutine延迟绑定-在循环迭代器的变量上使用 goroutines举例说明良好实践我再举个栗子测试一下go func从声明到被调度执行需要的时间再插播一下其实不知道取这个标题表达的准不准确,有些文章会说是延迟绑定问题闭包定义闭包是由函数和与其相关的引用环境组合而成的实体 。函数,指的是在闭包实际实现的时候,往往通过调用一个外部函数返回其内部函数来实现的。内部函数可能是内部实名函数、匿原创 2021-11-25 22:12:02 · 2947 阅读 · 0 评论