摘要: panic 阅读全文
posted @ 2019-02-19 16:56 osbreak 阅读(291) 评论(0) 推荐(0) 编辑
摘要: Go语言中的defer语句也非常独特。 defer语句仅能被放置在函数或方法中。 它由关键字defer和一个调用表达式组成。 调用表达式所表示的既不能是对Go语言内建函数的调用 也不能是对Go语言标准库代码包unsafe中的那些函数的调用。 实际上,满足上述条件的调用表达式被称为表达式语句。 func readFile(path string) ([]byte, error) { ... 阅读全文
posted @ 2019-02-19 16:38 osbreak 阅读(277) 评论(0) 推荐(0) 编辑
摘要: select语句属于条件分支流程控制方法,不过它只能用于通道。 select语句中的case关键字只能后跟用于通道的发送操作的表达式以及接收操作的表达式或语句。 ch1 := make(chan int, 1) ch2 := make(chan int, 1) select { case e1 := <-ch1: fmt.Printf("1th case is select... 阅读全文
posted @ 2019-02-19 16:23 osbreak 阅读(456) 评论(0) 推荐(0) 编辑
摘要: 指针操作涉及到两个操作符——&和*。 表达式&p的求值结果是p的指针。 地址操作符*被应用到一个指针值上时会取出该指针指向的值。 它们可以被视为相反的操作。 *出现在一个类型之前(如*Person和*[3]string)时就不能被看做是操作符了,而应该被视为一个符号。 如此组合而成的标识符所表达的含义是作为第二部分的那个类型的指针类型。 一个指针类型拥有以它以及以它的... 阅读全文
posted @ 2019-02-19 16:04 osbreak 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 接口类型总是代表着某一种类型(即所有实现它的类型)的行为。 一个接口类型的声明通常会包含关键字type、类型名称、关键字interface以及由花括号包裹的若干方法声明。 type Animal interface { Grow() Move(string) string } 接口类型中的方法声明是普通的方法声明的简化形式。 它们只包括方法名称、参数声明列表和结果声明... 阅读全文
posted @ 2019-02-19 15:45 osbreak 阅读(293) 评论(0) 推荐(0) 编辑
摘要: 结构体类型的字面量由关键字type、类型名称、关键字struct,以及由花括号包裹的若干字段声明组成。 type Person struct { Name string Gender string Age uint8 } Person{Name: "Robert", Gender: "Male", Age: 33} 键值对的顺序与其类型中的... 阅读全文
posted @ 2019-02-19 15:31 osbreak 阅读(324) 评论(0) 推荐(0) 编辑
摘要: 可以把函数作为值来传递和使用。Go语言中的函数可以返回多个结果。 func(input1 string ,input2 string) string 函数接受n个参数func add(a int, arg ...int) int { var sum int = a for i := 0; i < len(arg); i++ { sum += arg[i]... 阅读全文
posted @ 2019-02-19 15:28 osbreak 阅读(190) 评论(0) 推荐(0) 编辑