Go语言入门-《Go程序设计语言》学习笔记

  • 源码地址
  • Go官网教程
  • Go官网中文教程 推荐
  • 标准库源码

入门

  • goimports可以按需管理导入声明的插入和移除。它不是标准发布版的一部分,可以通过执行下面的命令获取到:(P2最下面倒数第二行)
$ go get golang.org/xtools/cmd/goimports
  • 在Go中,所有的索引使用半开区间,即包含第一个索引,不包含最后一个索引,因为这样逻辑比较简单。P3
  • 习惯上,在一个包声明前,使用注释对其进行描述。P3

for的几种形式 P4

for initialization; condition; post{
    // ...
}

// 传统的"while"循环
for condition {
    // ...
}

// 传统的无限循环
for {
    // ...
}

for _, arg := range 切片{
    // ...
}
  • 使用显式的初始化来说明初始化变量的重要性,使用隐式的初始化来表明初始化变量不重要。P5
  • 字符串相加高性能版,使用strings包中的Join函数。P6

package main

import (
    "fmt"
    "os"
    "strings"
)

//!+
func main() {
    fmt.Println(strings.Join(os.Args[1:], " "))
}

  • 标准库包的索引
  • 社区贡献的包

第2章

关键字、内置的预声明的常量、类型和函数 P20

  • := 表示声明,而 = 表示赋值。一个多变量的声明不能和多重赋值搞混,后者将右边的值赋给对应的变量:P23
i, j = j, i // 交换 i 和 j 的值

package main

import "fmt"

func main() {
    i, j := 1, 2
    fmt.Printf("原 i = %v j = %v\n", i, j)

    i, j = j, i
    fmt.Printf("变 i = %v j = %v", i, j)
}

每一次变量逃逸都需要一次额外的内存分配过程。 P27

你可能感兴趣的:(Go,学习笔记)