美文网首页
golang笔记

golang笔记

作者: honkkki | 来源:发表于2019-07-18 18:54 被阅读0次
  • 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内存。

相关文章

网友评论

      本文标题:golang笔记

      本文链接:https://www.haomeiwen.com/subject/mlvklctx.html