首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
Golang
蓝色记忆
创建于2021-07-26
订阅专栏
自学go的码农
等 6 人订阅
共36篇文章
创建于2021-07-26
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Golang的defer几个例子
先看下面代码: f2和f3两个函数在返回值定义上不一样,f2是直接int,而f3是a int,返回值就是a defer和return的执行顺序: 从图中看出先执行返回值的赋值,然后执行defer语句
Java数组定义使用
静态初始化 定义 静态初始化:定义数组的时候直接给数组赋值 格式 数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3}; 比如:int[] ages = new int[]{10,
Golang中切片多协程append并发不安全
并发安全也叫线程安全,在并发中出现了数据的丢失,称为并发不安全 map和slice都是并发不安全的,我们这次先看看切片的情况。 看下面demo: 开启10个协程,每个协程对切片s追加值。运行代码会发现
Golang方法值与方法表达式
方法值:隐式调用, struct实例获取方法对象 2) 方法表达式:显示调用, struct类型获取方法对象, 需要传递struct实例对象作为参数。
Golang的Map元素不能寻址的底层见解
先看一个例子: 这段代码是打印key为Lucy的地址,结果是: 不能拿到地址,因为map中的元素并不是一个变量,因此我们不能对map的元素进行取址操作,禁止对map元素取址的原因是:map可能随着元素
Golang里面go.mod文件内容版本号简单用法
本文go版本是1.14,开启GO111MODULE="on" 经常在go.mod里面看到引入第三方库的版本号: 可以看到copier版本使用的是v0.3.5的版本。 现在做个实验,在go.mod里面写
GO 类型的 String() 方法
当定义了一个有很多方法的类型时,十之八九你会使用 String() 方法来定制类型的字符串形式的输出,换句话说:一种可阅读性和打印性的输出。如果类型定义了 String() 方法,它会被用在 fmt.
Golang的map元素不可寻址
map 元素是无法取址的,这个我们看下面例子就知道了: 从上面例子可以看出,map的value值是不可寻址的。 但是我们再看下面的例子: 我们对map第一个元素进行修改,发现是可以成功的,那这就有个疑
Golang接口的iface 和 eface
本文通过一个小例子引出: 刚开始一直以为类型打印结果会是interface,没想到居然是int 我们知道一个interface的结构包含两部分:类型和值: 根据接口是否包含方法,可以将接口分为 ifa
Golang不能对一个interface{}进行range
直接看一个demo: 这段代码在for _, val := range v 的时候编译不通过,大概意思是:range不能作用于interface{]类型的v。 刚开始的时候我一直以为v是一个切片([]
Golang空接口与类型断言
空接口 定义 空接口是特殊形式的接口类型,普通的接口都有方法,而空接口没有定义任何方法口,也因此,我们可以说所有类型都至少实现了空接口。 每一个接口都包含两个属性,一个是值,一个是类型。 可见对于空接
Golang的字面量
在之前一篇文章Golang的寻址与不可寻址 我们有个结论:字面量都是不可寻址的。 但是什么是字面量呢? 什么是字面量 在 Go 中内置的基本类型有: 布尔类型:bool 11个内置的整数数字类型:in
Golang的寻址与不可寻址
在学习结构体的时候,无意发现一段代码的区别,最终才有了这篇文章,我们先看看这段代码: 样例代码 代码很简单,定义一个person结构体,又定义了结构体的两个方法,一个是值接收者类型方法foo();一个
Golang匿名函数参数的作用
通过上一篇文章:Golang的defer预计算参数 其中有一个例子: 结果: 通过这个例子我们知道,最后运行defer的时候i是100,那如果我们在运行defer的时候就需要i是最初值1来做逻辑呢,那
Golang的defer预计算参数
Go 语言中所有的函数调用都是传值的,虽然 defer 是关键字,但是也继承了这个特性。假设我们想要计算 main 函数运行的时间,可能会写出以下的代码: 结果是: 运行结果并不符合我们的预期,这个现
Golang 中的闭包和defer
具体定义这里不做累述了,主要看看两则放在一起使用的情况. 闭包里面的参数 先看一段代码: 打印结果: 因为闭包中对变量i是通过指针传递的,所以闭包里面对i的修改会直接修改i的值。 defer和普通函数
golang中对“引用传递”的误解
b本篇文章是转载的,https://segmentfault.com/a/1190000040213952 最近看很多教程或者说博客上都说 golang 中的 slice、map、channel、fu
Golang的range的小坑
直接看代码: 结果为: 从结果来看,m的value值始终是 &{王五 宁波 20},但是mv的value又是正常的。这是为什么呢? range每次都会把当前值赋值到循环变量上,而不是直接使用原变量,在
Golang切片地址打印
Golang切片地址打印,fmt.Printf("t: %p\n", t) // 指向的东西 fmt.Printf("&t: %p\n", &t) //自己地址
Golang的Panic和recover()
Painc用法是:用于抛出错误【类似与PHP里面的throw new Exception("error!")】 recover 是一个内建函数,用于重新获得 panic 协程的控制, recover
下一页