go学习中的零散笔记

1. 在go语法中,双引号是常用的来表达字符串,如果你使用了单引号,编译器会提示出错

2.c中的指针     *在不同的场景下有不同的作用:*可以用在指针变量的定义中,表明这是一个指针变量,以和普通变量区分开;使用指针变量时在前面加*表示获取指针指向的数据,或者说表示的是指针指向的数据本身

3. *操作符作为右值时,意义是取指针的值,作为左值时,也就是放在赋值操作符的左边时,表示 a 指针指向的变量。其实归纳起来,*操作符的根本意义就是操作指针指向的变量。当操作在右值时,就是取指向变量的值,当操作在左值时,就是将值设置给指向的变量。

4.:=这个符号直接取代了vartype,这种形式叫做简短声明。不过它有一个限制,那就是它只能用在函数内部;在函数外部使用则会无法编译通过,所以一般用var方式来定义全局变量

5.Go对于已声明但未使用的变量会在编译阶段报错

6.如果要声明一个多行的字符串怎么办?可以通过`来声明:

m := `hello
	world`

` 括起的字符串为Raw字符串,即字符串在代码中的形式就是打印时的形式,它没有字符转义,换行也将原样输出。例如本例中会输出:

hello
	world

7.
  • 大写字母开头的变量是可导出的,也就是其它包可以读取的,是公有变量;小写字母开头的就是不可导出的,是私有变量。
  • 大写字母开头的函数也是一样,相当于class中的带public关键词的公有函数;小写字母开头的就是有private关键词的私有函数。

8. go中的new和make https://blog.csdn.net/u010412301/article/details/84670062?utm_medium=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-baidujs-1.nonecase

9.go的切片:https://blog.csdn.net/ahilll/article/details/84624120

10.  important tips

  1. 函数外的每个语句都必须以关键字开始(var、const、func等)
  2. :=不能使用在函数外。
  3. _多用于占位,表示忽略值。

 11. 切片之间是不能比较的,我们不能使用==操作符来判断两个切片是否含有全部相等元素。 切片唯一合法的比较操作是和nil比较。 一个nil值的切片并没有底层数组,一个nil值的切片的长度和容量都是0。但是我们不能说一个长度和容量都是0的切片一定是nil,例如下面的示例

1
2
3
var s1 []int         //len(s1)=0;cap(s1)=0;s1==nil
s2 := []int{}        //len(s2)=0;cap(s2)=0;s2!=nil
s3 := make([]int, 0) //len(s3)=0;cap(s3)=0;s3!=nil

所以要判断一个切片是否是空的,要是用len(s) == 0来判断,不应该使用s == nil来判断。

12.   fmt.Sprintf    https://www.cnblogs.com/jcjc/p/12290915.html

13.  关于闭包  https://segmentfault.com/a/1190000022798222

14. go  goroutine   https://segmentfault.com/a/1190000018150987

15. go 异常处理- https://zhuanlan.zhihu.com/p/144348942

16.  空接口的作用:   1)空接口作为函数的参数

    使用空接口实现可以接收任意类型的函数参数。

  // 空接口作为函数参数

func show(a interface{}) {
    fmt.Printf("type:%T value:%v
", a, a)
}

   2)空接口作为map的值

    使用空接口实现可以保存任意值的字典。

  // 空接口作为map值
    var studentInfo = make(map[string]interface{})
    studentInfo["name"] = "李白"
    studentInfo["age"] = 18
    studentInfo["married"] = false
    fmt.Println(studentInfo)

17. go异常捕捉 https://wumansgy.github.io/2018/09/04/go%E8%AF%AD%E8%A8%80%E9%94%99%E8%AF%AF%E6%8D%95%E8%8E%B7%E5%92%8Cpanic%E5%BC%82%E5%B8%B8/
虽千万人吾往矣...
原文地址:https://www.cnblogs.com/rainisraining/p/14953018.html