golang 笔记

import "x/y/z"  //实际上是去找name.a  //自己把这个想象成路径

fmt.printf;  //把fmt想象成类(对象)


go build 包名默认就是目录名。生成的a文件也是目录名。


[delphi@z220 test]$ tree .

.

├── inc

│   └── func.go

└── test.go


//inc/func.go   实际上会生成 test/inc.a文件

package pkgfunc

import "fmt"

func MyFunc() {

    fmt.Println("Myfunc")

}


//test.go

package main

import "test/inc"

func main() {

    pkgfunc.MyFunc()

}


go run test.go

先找到test/inc.a文件,然后使用里面的pkgfunc包(名空间)里的MyFunc函数


一个目录下有多个package就会编译失败。


iota 遇上下一个const自动变成0, 

当赋值语句跟上一个相同,可省略不写iota

例如:

const (

monday = iota

trus

s

)


string 以unicode遍历的时候,每个字符类型是rune

go支持2种字符类型,一个是byte(uint8)代表utf8,另一个是rune代表单个unicode字符。

`` 可以写多行的原始字符


go中的数组是值类型,所有的值类型在赋值和作为参数传递都将产生一次复制动作。


因为go/build将会忽略所有以下划线或者点开头的源文件 


你可能感兴趣的:(golang 笔记)