go-lang快速入门 一

本系列针对有编程基础的人,学过c,c++,c#或php之类。

官网(英文的): https://golang.org/

找到个中文的:http://docscn.studygolang.com/doc/ 。

第一步可以通过https://tour.golang.org/welcome/1 快速的了解golang的大致特点,这个网页可以一边看概要文档,一边练习。

        中文的教学 https://tour.go-zh.org/welcome/1

第二步可以看 http://docscn.studygolang.com/doc/code.html ,了解go代码的组织方式。

第三步 effective go,写出高效的golang http://docscn.studygolang.com/doc/effective_go.html

golang与其它语言不同的地方:

  1. 在 package或struct中,如果一个名字以大写字母开头,那么它就是已导出的。
  2. 声明 x int, y int 可以写成x, y int,当连续两个或多个函数的已命名形参类型相同时,除最后一个类型以外,其它都可以省略。
  3. 函数的多值返回 func swap(x, y string) (string, string) {。
  4. 命名返回值 func split(sum int) (x, y int) {
  5. 基本类型:bool/string/int  int8  int16  int32  int64/uint uint8 uint16 uint32 uint64 uintptr/byte(uint8 的别名)/rune(int32 的别名,表示一个 Unicode 码点)/float32 float64/complex64 complex128
  6. 零值/默认值:数值类型为 0,布尔类型为 false,字符串为 ""(空字符串),指针nil。
  7. 与 C 不同的是,Go 在不同类型的项之间赋值时需要显式转换T(v)。
  8. for init; condition; post { }
    for condition { }
    for { }
    for key, value := range varMap {
    for pos, char := range "测试\x80語" { fmt.Printf("character %#U starts at byte position %d\n", char, pos)}
    for i, j := 0, len(a)-1; i < j; i, j = i+1, j-1 {a[i], a[j] = a[j], a[i]}
  9. switch:switch somevar.(type), switch no condition for fi else if, switch case multi value 与逗号分隔。There is no automatic fall through.
  10. defer 语句会将函数推迟到外层函数返回之后执行,资源管理。
  11. 指针, *type, &value, pointer get member value,用 . ,不用->
  12. type Vertex struct {
  13. 数组var a [10]int
  14. 切片就像数组的引用,切片并不存储任何数据,它只是描述了底层数组中的一段。更改切片的元素会修改其底层数组中对应的元素。与它共享底层数组的切片都会观测到这些修改。切片文法类似于没有长度的数组文法。切片 s 的长度和容量可通过表达式 len(s) 和 cap(s) 来获取。nil 切片的长度和容量为 0 且没有底层数组。func append(s []T, vs ...T) []T
  15. Range.for 循环的 range 形式可遍历切片或映射。当使用 for循环遍历切片时,每次迭代都会返回两个值。第一个值为当前元素的下标,第二个值为该下标所对应元素的一份副本
  16. 映射m = make(map[string]Vertex)。插入、修改m[key] = elem。删除delete(m, key)。elem, ok := m[key],ok为bool值,表示是否存在。
  17. 函数也是值。它们可以像其它值一样传递。函数值可以用作函数的参数或返回值。Go函数可以是一个闭包(与lua相似)。闭包是一个函数值,它引用了其函数体之外的变量。该函数可以访问并赋予其引用的变量的值,换句话说,该函数被这些变量“绑定”在一起。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FatherOfCodingMan

如果觉得有用的话,可以赏点饭钱

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值