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)
 	}
 }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章