首页 > 其他 > 详细

golang学习笔记

时间:2017-03-12 16:52:31      阅读:216      评论:0      收藏:0      [点我收藏+]
注释
单行 //   
多行 /*  这是注释的内容 */
 
打印 信息 
import "fmt"
fmt.Println("message to be printed");
 
数值类型
int8 , int16 int32 int64
float32 float64
complex
 
布尔类型
bool
 
字符串
string
 
指针
 
格式化输出
%d 十进制数字  %o 八进制数字 %b 二进制数字 %x十六进制数字 %s 字符串 %v 任意变量按默认格式输出
更多详情 参考 https://golang.org/pkg/fmt/ 
 
常量使用驼峰命名法, 第一个字符大小写由可见性决定是否小大写
 
值拷贝类型
整型 浮点型 布尔型 string array struct
引用传递类型
slice map 

 

数组
声明格式 var name [num]type, 如果初始化能确定的给出元素,可以省略人工数个数,让编译器自动推导, 但是要用 三个点代替。。 因为如果是空就是切片而不是数组了
 
切片 Slice
切片的声明和数组非常像 只要不给定长度就是切片letters := []string{"a", "b", "c", "d"}
如果一开始不能定下元素, 后面动态设置元素的话, 可以用 make 内置函数 创建一个空切片
 func make([]T, len, cap) []T
 
字典/映射 Map
创建一个空 Map  
mymap := make(map[key-type]val-type).
例如 

 

 1 m := make(map[string]int)  // 创建
 2 m["k1"] = 7  //
 3 m["k2"] = 13 //
 4 fmt.Println("map:", m)
 5 v1 := m["k1"]  //
 6 fmt.Println("v1: ", v1)
 7 fmt.Println("len:", len(m))
 8 delete(m, "k2")  //
 9 fmt.Println("map:", m)
10 
11 // 第一个返回值是value, 第二个返回值是bool, 如果key不存在或者 value是零值 则返回false, 有效的情况下返回true
12 //如果value 是int 放入0 返回 true, 如果value是string 型 放入 "" 返回false
13 _, prs := m["k2"]  
14             
15 fmt.Println("prs:", prs)
16 n := map[string]int{"foo": 1, "bar": 2} // 创建的同时填值
17 fmt.Println("map:", n)

 

range 数组, 得到 索引和值
for index ,value:= range arr { }
 
range 切片  得到索引和值 
for index, value := range slice {}
 
range 字典 得到 key 和 value
for key, value :=  range map { }

 

获取变量类型

http://stackoverflow.com/questions/20170275/how-to-find-a-type-of-a-object-in-golang

 

并发:
用 所有的核计算 runtime.GOMAXPROCS(runtime.NumCPU())
 
goroutine
启动方式 go funcNameBeInvoked(argetment1,...)   对比java 的 new Thread(Runnable).start()
 
channel
不要通过共享内存来通信,而要通过通信来共享内存
 

golang学习笔记

原文:http://www.cnblogs.com/lonkiss/p/6537979.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!