go概览

Go是编译型语言。 如果缺少import或者导入之后没有使用,程序都不会进行编译。 Go每行结尾并不需要加分号(加分号也不会报错,但不符合规范) Go提供了gofmt命令来处理编码规范问题。

$ gofmt --help
usage: gofmt [flags] [path ...]
  -cpuprofile string
        write cpu profile to this file
  -d    display diffs instead of rewriting files
  -e    report all errors (not just the first 10 on different lines)
  -l    list files whose formatting differs from gofmt's
  -r string
        rewrite rule (e.g., 'a[b:len(a)] -> a[b:]')
  -s    simplify code
  -w    write result to (source) file instead of stdout


os.Args //命令行输入,os.Args[0]表示命令本身

for initialization; condition; post {
    //zero or more statements
}

// 相当于while
for condition {

}
// 相当于无限循环
for {

}

range //返回当前索引的索引和值

ch := make(chan string) //初始化字符串类型的通道
<-ch                    //从通道中取值
ch <-                   //往通道中写入值


strings.Join(<list>, sep)         // 功能和python中join一样
input := bufio.NewScanner(os.Stdin)        //读取标准输入的数据,并分解为行或单词
input.Scan() //读取下一行,并去掉换行符
input.Text() //获取输入内容


%d          十进制整数
%x, %o, %b  十六进制,八进制,二进制整数。
%f, %g, %e  浮点数: 3.141593 3.141592653589793 3.141593e+00
%t          布尔:true或false
%c          字符(rune) (Unicode码点)
%s          字符串
%q          带双引号的字符串"abc"或带单引号的字符'c'
%v          变量的自然形式(natural format)
%T          变量的类型
%%          字面上的百分号标志(无操作数)


fmt.Sprintf       //返回格式化后的字符串
fmt.Println       //打印到标准输出,返回字节数和err

// 格式化字符串并写入到w中,返回写入的字节数和err
func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error)       

// 返回一个可读文件对象
func Open(name string) (*File, error)   //os.Open
func Exit(code int)                     //os.Open,结束程序,0表示成功
func ReadFile(filename string) ([]byte, error) //ioutil.ReadFile,读取整个文件并返回内容
func ReadAll(r io.Reader) ([]byte, error) //ioutil.ReadAll,从r中读取直到EOF或产生错误

func Join(a []string, sep string) string //strings.Join
func Split(s, sep string) []string       //strings.Split
func (c *Client) Get(url string) (resp *Response, err error)//http.Get
func (mux *ServeMux) HandleFunc(pattern string, handler func(ResponseWriter, *Request)) //http.HandleFunc,根据pattern注册处理函数

func Fatal(v ...interface{})  //log.Fatal,等同于Print()+os.Exit(1)

func Now() Time        //time.Now,返回本地当前时间
func Since(t Time) Duration //time.Since


//sync.Mutex
func (m *Mutex) Lock()  
func (m *Mutex) Unlock()


//io
func Copy(dst Writer, src Reader) (written int64, err error) //copy src to dst, ioutil.Discard相当于/dev/null

相关代码


Ref: 1.The Go Programming Language