随笔分类 -  go

摘要:## 结构### 概念- Go 中没有 class 的概念,结构可以完成类似功能- 支持指向自身的指针类型成员- 支持匿名结构- 支持==和!=运算符### 创建结构格式`type struct{}````gotype person struct { name string age ... 阅读全文
posted @ 2015-03-15 16:40 doitNow 阅读(268) 评论(0) 推荐(0)
摘要:## defer 与异常处理### 概述Go没有try..catch 这种异常机制,而是使用panic和recoverpanic在任何地方都可以执行,recover只有在defer调用的函数有效### defer- defer 用于定义在函数执行结束后执行的语句- 多个 defer 会形成 defe... 阅读全文
posted @ 2015-03-05 09:50 doitNow 阅读(236) 评论(0) 推荐(0)
摘要:## 函数### 特点- 不支持嵌套,重载和默认参数- 支持闭包### 定义函数```go//单个返回值,可以省略括号func test0(a int, b string) int { return a}//多个返回值func test1(a int, b string) (int, string... 阅读全文
posted @ 2015-03-05 09:49 doitNow 阅读(149) 评论(0) 推荐(0)
摘要:## Map### 创建 Map定义后再初始化```govar m1 map[int]stringm1 = map[int]string{} //m1 map[]```使用 make 函数格式为`make([keyType]valueType, cap)` 容量可以省略```govar m2 map... 阅读全文
posted @ 2015-03-04 09:53 doitNow 阅读(120) 评论(0) 推荐(0)
摘要:## 切片 Slice### 概念- 切片本身不是数组,而是指向底层的数组,关联数组的局部或全部- 切片是引用类型- 创建切片时索引不能超过数组的大小,否则会报异常### 创建 Slice#### 定义切片定义时不用指定长度(指定长度或使用...表示的是数组)```go//切片var s []int... 阅读全文
posted @ 2015-03-04 09:52 doitNow 阅读(172) 评论(0) 推荐(0)
摘要:## 数组### 创建数组直接指定长度```govar score [3]int //[0 0 0]```指定长度并初始化```goscore1 := [2]int{3, 4} //[3 4]```利用索引初始化```goscore2 := [10]int{3: 4, 9: 1} //[0 0 0 ... 阅读全文
posted @ 2015-03-03 10:13 doitNow 阅读(131) 评论(0) 推荐(1)
摘要:## 流程控制### 判断语句 if基本语法- if后没有小括号- 支持变量初始化,初始化的变量要以`;`结尾- 使用变量初始化产生的变量,作用域仅在 if 语句之内```goif 1 3 { //变量初始化 a fmt.Println(a) //5}//fmt.Println(a) 超出作... 阅读全文
posted @ 2015-02-25 10:52 doitNow 阅读(126) 评论(0) 推荐(0)
摘要:## 指针- 采用"."直接操作指针- 使用"&"取变量地址- 使用"*"通过指针间接访问对象- 指针默认值为nil而非null- 定义指针时不能省略类型```goa := 1var pa *int = &afmt.Println(pa) //0xc0820062e0fmt.Println(*pa... 阅读全文
posted @ 2015-02-25 10:51 doitNow 阅读(123) 评论(0) 推荐(0)
摘要:## 操作符`++,--`只能作为语句,即一行单独的`++````goa := 1a++fmt.Println(a)var b = ++a //error``` 阅读全文
posted @ 2015-02-25 10:50 doitNow 阅读(135) 评论(0) 推荐(0)
摘要:## 常量### 定义- 常量使用const关键字进行定义- 常量的值在编译时确定,所以运行时无法改变- 常量表达式中的函数必须是内置函数(因为自己写的函数的返回值是在运行时确定的)示例```goconst ( text, size = "text", len(text))```常量组中如果不指定默... 阅读全文
posted @ 2015-01-31 22:19 doitNow 阅读(132) 评论(0) 推荐(0)
摘要:## 变量### 变量的定义与赋值变量使用var关键字进行定义```go//定义var a int//赋值a = 123//定义的同时赋值var b int = 321```由系统推断类型```govar c = 321```短声明变量```god:=321```### 多个变量的声明#### 变量... 阅读全文
posted @ 2015-01-31 22:05 doitNow 阅读(146) 评论(0) 推荐(0)
摘要:## 数据类型### 分类- 布尔:bool - true or false- 整型:int/uint 根据平台可能为32位或64位- 8位整型:int8/uint8- 字节:byte(uint8别名)- 16位整型:int16/uint16- 32位整型:int32/uint32- rune(in... 阅读全文
posted @ 2015-01-31 22:04 doitNow 阅读(177) 评论(0) 推荐(0)
摘要:# 基本语法## 包### 基本结构包的基本结构如下```go//程序运行的入口是包 `main`。package main//导入包"fmt"和"math/rand"import ( "fmt" "math/rand")//或import std "fmt" //指定别名import "math"... 阅读全文
posted @ 2015-01-31 21:40 doitNow 阅读(311) 评论(0) 推荐(0)
摘要:# 简介## 特点- 支持并发,垃圾回收的编译型系统编程语言- 导入没有使用过的包时会报错## 安装Mac os```gobrew install go```## 第一个例子建立一个文件,名为"hello.go",添加如下内容```gopackage mainimport "fmt"func mai... 阅读全文
posted @ 2015-01-31 21:37 doitNow 阅读(159) 评论(0) 推荐(0)