go語言常用操作

聲明並賦值

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" // \n\r表示換行  txt文件要看到換行效果要用 \r\n
	//寫入時,使用帶緩存的 *Writer
	writer := bufio.NewWriter(file)
	for i := 0; i < 3; i++ {
		writer.WriteString(str)
	}
	//因爲 writer 是帶緩存的,因此在調用 WriterString 方法時,內容是先寫入緩存的
	//所以要調用 flush方法,將緩存的數據真正寫入到文件中。
	writer.Flush()
}

//讀取
func dq() {
	//打開文件
	file, err := os.Open("./output.txt")
	if err != nil {
		fmt.Println("文件打開失敗 = ", err)
	}
	//及時關閉 file 句柄,否則會有內存泄漏 等同於析構函數
	defer file.Close()
	//創建一個 *Reader , 是帶緩衝的
	reader := bufio.NewReader(file)
	for {
		str, err := reader.ReadString('\n') //讀到一個換行就結束
		if err == io.EOF {                  //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)
 	}
 }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章