声明并赋值
package main
import (
"fmt"
)
func main ( ) {
qq := 1
fmt. Println ( qq)
}
条件循环
if else if else
for
goto ( 转移到被标记的语句)
len 长度 cap 容量
切片(slice)
a:= [ 3 ] int { 1 , 2 , 3 , 4 , 5 }
var b [ ] int = a[ 1 : 4 ]
[ : ] 前闭后开 数组切片
数组操作方法: append copy
集合(map)
kay- value类型
a:= map [ string ] int { "qq" : 1 }
interface { } 空类型
map [ interface { } ] interface { } { "qq" : 1 }
map 操作方法: delete
范围(Range)
nums := [ ] int { 2 , 3 , 4 }
sum := 0
for key, value := range nums {
if num == 3 {
fmt. Println ( "key:" , key)
}
}
make
初始化 切片 map 等
a:= make ( [ ] int , 4 )
b:= make ( map [ string ] float64 , 100 )
打印方法
fmt. Println ( 123 )
fmt. Printf ( "%T" , 123 )
结构体(struct)
type Books struct {
title string
author string
subject string
book_id int
}
指针(* &)
接口类(interface{})
管道(chan)
反射(reflect)
文件操作
package main
import (
"bufio"
"fmt"
"io"
"os"
)
func main ( ) {
xr ( )
dq ( )
}
func xr ( ) {
filePath := "./output.txt"
file, err := os. OpenFile ( filePath, os. O_WRONLY| os. O_CREATE, 0666 )
if err != nil {
fmt. Printf ( "打开文件错误= %v \n" , err)
return
}
defer file. Close ( )
str := "http://c.biancheng.net/golang/\n"
writer := bufio. NewWriter ( file)
for i := 0 ; i < 3 ; i++ {
writer. WriteString ( str)
}
writer. Flush ( )
}
func dq ( ) {
file, err := os. Open ( "./output.txt" )
if err != nil {
fmt. Println ( "文件打开失败 = " , err)
}
defer file. Close ( )
reader := bufio. NewReader ( file)
for {
str, err := reader. ReadString ( '\n' )
if err == io. EOF {
break
}
fmt. Print ( str)
}
fmt. Println ( "文件读取结束..." )
}
go协程(goroutines)
package main
import (
"bufio"
"fmt"
"io"
"os"
)
func main ( ) {
go say ( "world" )
say ( "hello" )
}
func say ( s string ) {
for i := 0 ; i < 5 ; i++ {
time. Sleep ( 100 * time. Millisecond)
fmt. Println ( s)
}
}