GO语言学习记录

来源:互联网 发布:小米网络电视机 编辑:程序博客网 时间:2024/05/22 14:05

本文仅是一个要点记录,不会有完整的逻辑语言,学到哪记到哪,希望能够坚持,加油! Go Go Go!!!


os.Args 是一个分片,os.Args[0]代表执行程序自己,os.Args[1:]代表执行程序的参数。


分片 slice

左闭右开特性


map

创建方法:make(map[string]int)

map作为func参数时,是传递一份指针拷贝,但指针拷贝也是指向真实的地址,因此在func里修改了map,map会真的被修改哦


文件读取

文件读取方法1——流式读取按行取出

os.Open返回文件指针和err

f,err := os.Open(file)

if err == nil {

    input := bufio.NewScanner(f)

    for range input.Scan() {

        fmt.Printf("%s", input.Text())

    }

}

文件读取方法2——读取整个文件,然后按行分割,挨个取行

ioutil.ReadFile返回[]byte和err

data, err := ioutil.ReadFile(file)
if err != nil {
    fmt.Fprintf(os.Stderr, "dup3: %v\n", err)
    continue
}
for _, line := range strings.Split(string(data), "\n") {
    fmt.Printf("%s\n", line)
}


字符串分割函数,字符串拼接函数

strings.Split()

strings.Join()


格式化输出

%d int变量
%x, %o, %b 分别为16进制,8进制,2进制形式的int
%f, %g, %e 浮点数: 3.141593 3.141592653589793 3.141593e+00
%t 布尔变量:true 或 false
%c rune (Unicode码点),Go语言里特有的Unicode字符类型
%s string
%q 带双引号的字符串 "abc" 或 带单引号的 rune 'c'
%v 会将任意变量以易读的形式打印出来
%T 打印变量的类型
%% 字符型百分比标志(%符号本身,没有其他操作)


指针

GO语言里的指针和C很类似,但千万不要试图去做指针的计算


关键字

Go语言中的关键字有25个;关键字不能用于自定义名字,只能在特定语法结构中使用。
break default func interface select
case defer go map struct
chan else goto package switch
const fallthrough if range type
continue for import return var


预定义名字

内部预先定义的名字并不是关键字,你可以再定义中重新使用它们。在一些特殊的场景中重新定义它们也是有意义的,但是也要注意避免过度而引起语义混乱。

内建常量: true false iota nil
内建类型: int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64 uintptr
float32 float64 complex128 complex64
bool byte rune string error
内建函数: make len cap new append copy close delete
complex real imag panic recover