-
利用io/ioutil包一次性读取一个文件的所有内容
import ( "fmt" "io/ioutil" )
-
涉及到时间的包就是time,包括时间戳、程序休眠、定时器、重复执行的定时器等
import ( "fmt" "time" ) now := time.Now() //格式化的时间 time.Sleep(time.Second*2 + time.Minute*1) //休眠62秒
-
JSON编码和解码 使用encoding/json包
-
JSON编码
import ( "fmt" "encoding/json" ) //对map映射编码 m := map[string]string{ "one": "hello", "two": "world", } data, err = json.Marshal(m) fmt.Println(string(data)) //{"one":"hello","two":"world"} //对结构体进行json编码 type Person struct { Name string Age int gender string } func main() { p := Person{"Jane", 33, "female"} data, _ := json.Marshal(p) fmt.Println(string(data)) //{"Name":"Jane","Age":33} //注意,首字母小写的gender属性并没有被编码 } //对结构体进行编码的时候,要注意,只会对可见的属性字段进行编码,不会对不可见的属性进行编码。 //也就是说,只有当结构体中的属性首字母是大写的,才会对这个属性进行编码,否则会忽略掉首字母小写的属性。 //在对结构体进行json编码的时候,还可以指定属性编码时,属性的名称,即可以替换原始的属性名。 type Person struct { Name string `json:"person_name"` Age int gender string } func main() { p := Person{"Jane", 33, "female"} data, _ := json.Marshal(p) fmt.Println(string(data)) //{"person_name":"Jane","Age":33} //注意,首字母小写的gender属性并没有被编码 //p中的Name已经被改成了person_name,在结构体`json:"field"`指定 //如果未指定`json:"field"`,则会沿用原属性名 }
- JSON解码
func Unmarshal(data []byte, v interface{}) error
-
-
XML编码和解码 使用encoding/xml包
- MD5加密采用crypto/md5包
import ( "fmt" "crypto/md5" ) Md5Instance := md5.New() res := Md5Instance.Sum([]byte("")) fmt.Printf("%x", res) //5d41402abc4b2a76b9719d911017c592
- 正则表达式匹配,可以使用go语言的regexp包
import ( "fmt" "regexp" )
- 字符串操作--使用strings、strconv包
import ( "fmt" "strings" "strconv" )
- 进程间通信除了使用channel,还可以使用共享内存,即sync包。
import ( "fmt" "sync" ) //sync包中常用的有三个方法:Add(num int) 、 Done()、 Wait() //sync中会在内部维持一个类似于计数器的东西,通过Add方法来增加计数器的值,增加参数num;通过Done来减少计数器的值,一次只能减少1;Wait方法会使主协程阻塞,只有到内部计数器的值为0时,阻塞才会解开。 package main import ( "fmt" "sync" ) func main() { var wg sync.WaitGroup for i := 1; i < 6; i++ { wg.Add(1) //计数器加1 go func(x int) { fmt.Println("第", x, "个子goroutine执行结束") wg.Done() //goroutine执行完毕,计数器减1 }(i) } wg.Wait() // 计数器不为0的时候,一直阻塞;计数器变为0的时候,阻塞解开 fmt.Println("主goroutine执行结束") }
- coming
Golang语言第三方包
最新推荐文章于 2023-12-24 22:29:37 发布