golang笔记

  • go中数组长度不同无法进行比较,数组长度也是数组的组成部分;
  • 指向数组的指针和指针数组:指向数组的指针是取数组的引用,指针数组是引用&作为数组中的值;
  • 数组是值类型传递copy,切片是引用类型;
  • function传递参数时,int、...int、string等类型传递的是值(copy),传切片是传递地址,直接改变原来的值;
  • %c用字符打印,%d用整形打印,%T注意大写打印类型,%v自动匹配类型,%+v详细打印;
  • map:
    value,ok := map[0] ,第二个返回值表示key是否存在;map无序;函数参数传递是引用传递;
    可以扩容;
  • 结构体匿名字段选择性赋值:

加上匿名字段名:后面再写结构体

    s1 := Teacher{Person2:Person2{Name:"golang"}, id:1} 
  • 结构体指针操作成员变量需要有合法指向
var p1 *Person
    var s Person
    //指向s的地址
    p1 = &s
    p1.Name = "tom"
  • 方法调用,变量使用大多是就近原则;
  • channel:关闭channel无法再发送数据到管道,可以继续读取管道中的数据。空管道会阻塞收发数据。
    单向chan无法转化为双向chan,双向可以转化为单向chan。
  • 位运算符是对二进制而言的, 异或^是两个二进制对应位置不相等则为1, <<或者>>都要转为二进制后计算,
    1 << 10 = 10000000000 = 2的10次方 = 1024 常用来表示内存大小常量

切片

  • 切片:指向相同数组或切片时改变切片会导致另外一个也改变,切片不保存值,改变的都是底层数组的值。
    切片append追加元素时,底层数组的内存地址改变,容量增加。
  • s1 : = append(s1, s2...) 表示往s1中追加s2中的元素,...表示拆分s2切片中的元素。
    实现删除切片中元素可以使用append.
a = append(a[:index], a[index+1:]...)

make只能用于创建slice,map,chan内存。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容