golang基础-数据类型

go语言基础-数据类型

package main

import (
    "fmt"
)

/**
强制类型转换
type(value)

复数
c := real + imagi
c := complex(x, y)
real(c)
imag(c)

数组是值类型,切片是指针类型
基于数组创建切片
var sliceName []type = array[:8
sliceName := make([]type, len, cap)
sliceName := []type{...}
append(sliceName, e1, e2,...)
append(sliceName, otherSlice...)
copy(slicedest, slicesrc)

map
mapName := make(map[keyType] valueType, [len])
mapName[k] = v
v, ok := mapName[k]
delete(mapName, k)

if else, for, switch, break [label], continue, goto label

函数:
func functionName(param type) (returnType) {

}
函数名首字母大小写决定了是否是public or private

不定参数:
func funName(args ...type) {

}
funName(args...)
funName(slice[]...)
arg.(type)判断类型

匿名函数和闭包
匿名函数可以直接赋值给一个变量或直接运行
闭包中的变量将被保存

错误处理
error接口, 实现Error() String方法

defer panic recover
defer func() {

}()
*/

func main() {
    // 匿名函数
    func(str string) {
        fmt.Println(str)
    }("golang基础-数据类型")
    
    k := 10
    // 闭包, i的值被保存
    closure := func() func() {
        i := 10
        return func() {
            i = i * k
        fmt.Println(i)
    }
    }()
    
    for ; k < 100; k += 10 {
        closure()
    }
}
sosop hou 22 November 2015
blog comments powered by Disqus