Go基础:初学可能会有的迷惑

安装了go后敲了一遍《Go编程实例》,然后小做了个项目,现在做个总结归纳。

  1. .访问方法

    • fmt.Println(“one”)
    • time.Now().Weekday()
  2. - 下划线的作用:特殊标识符,用来忽略结果。

    • import _ 包路径 只是引用该包,仅是为了调用init()函数,无法通过包名来调用包中的其他函数
    • go 中如果一个变量声明了不使用,编译器会报错,可以 - 来忽略这个变量。
  3. = 与 := 区别

    • = var 声明 1 个或者多个变量 赋值操作
    • := 语法是声明并初始化变量的简写
  1. 声明数组

    • var a [5]int //一维数组
    • var twoD [2][3]int //多维数组
  2. 切片slice: 一个比数组更 加强大的序列接口

    • slice 的类型仅由它所包含的元素决定(不需要元素的个数)
    • 创建一个长度非零的空 slice,需要使用内建的方法 make
    • slice 和数组是不同的类型,但是它们通过 fmt.Println 打印 结果类似
  3. map: 内置关联数据类型

    • 要创建一个空 map,需要使用内建的 make make(map[key-type]val-type)
    • map 在使用 fmt.Println 打印的时候,是以 map[k:v k:v] 的格式输出的。
  4. range 相当于其他语言的 foreach

  5. 函数

    • func plusPlus(a, b, c int) int {} //单返回值 三个整型参数
    • func vals() (int, int) {} //多返回值函数 返回两个整型参数
    • func sum(nums …int) {} //可变参函数 接受任意数目的整型参数
    • 函数的三种用法
  6. 匿名函数

    //intSeq函数的返回值是一个函数
    func intSeq() func() int {
     i := 0
     return func() int {
         i++
         return i
     }
    }
  7. 递归

    // `fact` 函数在到达 `fact(0)` 前一直调用自身。
    func fact(n int) int {
    if n == 0 {
       return 1
    }
    return n * fact(n-1)
    }
  8. 指针(地址)可以用来引用传递值或者数据结构。

  9. 结构体 (struct) 是带类型的字段 (fields) 集合

    • 在表操作的时候 经常要先去声明。
    • type 关键字去声明
  10. 结构体类型中定义方法 (methods),有点类似函数但它属于结构体的

    • type 关键字去声明
  11. 接口

    • 要在 Go 中实现一个接口,我们就需要实现接口中的所有方法。
  12. 错误处理 有一个官方包 errors

  13. Go 协程 (goroutine) 在执行上来说是轻量级的线程。

  14. 通道(云里雾里的这个一块 后续要加强)

    • 通道 (Channels) 是连接多个 Go 协程的管道。(你可以从一个 Go 协程 将值发送到通道,然后在别的 Go 协程中接收。)
    • 通道缓冲:默认无缓冲,可缓存通道 允许在没有对应接收方的情况下,缓存限定数量的值。
    • 通道同步:同步阻塞的方式接受go 协程运行状态。
    • 通道方向:当使用通道作为函数的参数时,可以指定这个通道是不是 只用来发送或者接收值
    • 通道选择器:可以同时等待多个通道操作
    • 超时处理
    • 非阻塞通道
    • 通道关闭
    • 通道遍历

18.

尚未写完 会继续更新

本作品采用《CC 协议》,转载必须注明作者和本文链接
滴水穿石,石破天惊----晓疯子
zhaocrazy
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!