聲明並賦值
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)
}
}