Go学习笔记(一)

| 分类 Go学习  | 标签 编程语言  Go  笔记 

Go语言入门

包的使用

每个 Go 程序都是由包组成的。 程序运行的入口是包 main 。 这个程序使用并导入了包 “fmt“ 和 “math/rand“ 。 按照惯例,包名与导入路径的最后一个目录一致。例如,”math/rand“ 包由 package rand 语句开始。

导出名称

在 Go 中,首字母大写的名称是被导出的。 在导入包之后,只能访问包所导出的名字,任何未导出的名字是不能被包外的代码访问的。 Foo 和 FOO 都是被导出的名称。名称 foo 是不会被导出的。

函数

函数可以没有参数或接受多个参数。 在这个例子中, add 接受两个 int 类型的参数。 注意类型在变量名之后。 当两个或多个连续的函数命名参数是同一类型,则除了最后一个类型之外,其他都可以省略。

package main
import "fmt"
func add(x int, y int) int {  // (x int, y int) 可写为 (x, y int)
    return x + y
}

func main() {
    fmt.Println(add(42, 13))
}

函数多值返回

函数可以返回任意数量的返回值。 Go 的返回值可以被命名,并且就像在函数体开头声明的变量那样使用。 返回值的名称应当具有一定的意义,可以作为文档使用。 没有参数的 return 语句返回各个返回变量的当前值。这种用法被称作“裸”返回。 直接返回语句仅应当用在像下面这样的短函数中。在长的函数中它们会影响代码的可读性。

package main
import "fmt"
func swap(x, y string) (string, string) {
    return y, x
}

func main() {
    a, b := swap("hello", "world")
    fmt.Println(a, b)
}

变量

Go 的基本类型有

bool
string

int  int8  int16  int32  int64
uint uint8 uint16 uint32 uint64 uintptr

byte // uint8 的别名

rune // int32 的别名
     // 代表一个Unicode码

float32 float64

complex64 complex128

defer语句

defer 语句会延迟函数的执行直到上层函数返回。 延迟调用的参数会立刻生成,但是在上层函数返回前函数都不会被调用。 延迟的函数调用被压入一个栈中。当函数返回时, 会按照后进先出的顺序调用被延迟的函数调用。


上一篇     下一篇