Go简介

2019-12-09  本文已影响0人  LightiSnow

go语言笔记

标识符

一个包中的变量是以小写字母开头的,如果要公开一个标识符,这个标识符以大写字母开头,可以被直接访问。

变量初始化

对于数值类型,零值是0;对于字符串类型,零值是空字符串;对于布尔类型,零值是false;对于指针,零值是nil;对于引用类型来说,所引用的底层数据结构会被初始化成对应的零值,但是被声明为其零值的引用类型的变量,会返回nil作为其值。

defer延迟调用

关键字defer会安排随后的函数调用在函数返回时菜执行,可以保证defer声明的函数一定会被调用,哪怕函数意外崩溃终止。使用defer可以提高代码可读性,减少错误。

可变参数
func (r *Runner) Add(tasks ...func(int)) {
    r.tasks = append(r.tasks, tasks...)
}

// 调用
r := runner.New()
r.Add(createTask(), createTask(), createTask())
Select关键字

带 default 分支的 select 语句可以用来尝试向通道发送或者接收数据,而不会阻塞。

// gotInterrupt verifies if the interrupt signal has been issued.
func (r *Runner) gotInterrupt() bool {
    select {
    // Signaled when an interrupt event is sent.
    case <-r.interrupt:
        // Stop receiving any further signals.
        signal.Stop(r.interrupt)
        return true

    // Continue running as normal.
    default:
        return false
    }
}
上一篇 下一篇

猜你喜欢

热点阅读