- 博客(7)
- 收藏
- 关注
原创 golang中切片作为函数参数
如果修改初始化stack时的capacity为0或1,则发现Caller和Callee中的stack指针地址不同,因为在Callee中进行了数组扩容,切片指向的底层数组已经有所不同。回顾下slice的结构,gopl中写到,一个slice由三个部分构成:指针、长度和容量。的修改都不会影响到调用者函数(Caller)中的slice结构(Callee中append的元素将不会被Caller访问到)在被调用函数(Callee)中的slice是该指针的一个副本,在被调用函数中对副本进行。
2022-08-19 21:38:47
580
1
原创 golang中defer和return的执行顺序问题
当函数的返回值为有名值时,这个临时变量不会被创建,而是使用有名返回值进行返回,意味着在defer函数中有可能在return的第一步即返回值赋值后继续修改返回值(因为返回值变量名称已知,即可被访问)return语句的执行是非原子的,分为两步,第一步是为返回值赋值,第二步是返回到函数调用处。当函数的返回值是无名返回值时,在第一步会创建一个临时零值变量,对这个临时变量进行赋值。defer的函数在return的第一步后执行,即上述注释处。这里return语句实际上执行了。输出结果为7,有几个知识点。...
2022-08-10 12:20:36
301
原创 浅析Linux中的Daemon
学Redis的过程中看到教程里说Redis服务端程序是以非daemon形式启动的,联想到Docker教程中docker服务端是以daemon形式启动的,于是想搞明白这个daemon到底是个啥玩意儿。
2022-08-07 21:00:01
1564
原创 Docker容器中的时区设置
写完一段golang后写了Dockerfile把程序部署到Docker容器中,由于程序中涉及到日志打印(使用log.Printf打印日志),发现日志打印的时间是UTC时区,而我所在的时区是CST时区,查阅资料过程中提取到两个关键词$TW、,两个共同作用决定终端下date命令输出代表的时区。...
2022-08-04 22:09:58
3548
原创 【Docker】Dockerfile中ENTRYPOINT和CMD的顺序问题
ENTRYPOINT指定的命令具有最高的优先级别。以execform指定ENTRYPOINT时,CMD就只能用来指定参数(第二种形式),且当后跟着的字符时,这些字符都会作为参数处理并覆盖CMD指定的参数以shellform指定ENTRYPOINT时,其他参数都失效。...
2022-07-21 09:27:21
1398
1
原创 对象转型中的注意要点
对象转型中的注意要点向上转型时父类引用不能指向子类中的独有属性上代码public class Armor extends Item{ public int armorExclusive = 99; public static void main(String[] args) { Item item = new Armor(); Armor armor = new Armor(); System.out.println(item.armorExclusive); //报
2020-11-28 11:06:29
47
原创 可变参数方法和普通方法在重载时的优先级问题
可变参数方法和普通方法在重载时的优先级问题可变参数方法和普通方法在重载时优先调用可变参数方法。public class Item { String name; int price; public Item(){ } public Item(int...numbers){ for(int i = 0;i<numbers.length;i++) System.out.println("可变参数方法"); } public Item(int price){ System.
2020-11-27 14:26:43
189
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人