golang常用函数
1.文件读写
package main import ( "fmt" "os" ) func main(){ yaml_str,err:=os.ReadFile("poc/1.yml") if err!=nil{ panic(err) } poc_old:=string(yaml_str)
os.WriteFile("poc/1.yml",[]byte("s_yaml_str1gdfgfdgdfg111"),os.ModePerm)
fmt.Println(poc_old) }
2.字符串处理
package main
import (
"fmt"
"strings"
)
func main(){
str1:="hello word"
fmt.Println(len(str1))
str2:=[]rune(str1)
for i:=0;i<len(str2);i++{
fmt.Printf("%c\n",str2[i])
}
str3:=strings.Contains(str1,"word")//是否包含关键词
fmt.Println(str3)
str4:=strings.Index(str1,"word")//索引位置
fmt.Println(str4)
str5 := strings.Trim("!hello !"," !")//去掉特殊字符
fmt.Println(str5)
str6 := strings.ToLower("Go")//转小写
str7 := strings.ToUpper("Go")//转大写
fmt.Println(str6,str7)
str8 := strings.TrimSpace(" tn hello ")//去掉空格
fmt.Println(str6,str8)
str9:=strings.Split("hello,wrold,ok",",")//分隔成数组
for j:=0;j<len(str9);j++{
fmt.Println(str9[j])
}
}
strings.newreader
strings.newreader 是一个用于创建一个新的 Reader 接口的函数,用于从字符串中读取数据。它返回一个实现了 io.Reader 接口的对象。
package main import ( "fmt" "io" "strings" ) func main() { str := "Hello, World!" r := strings.NewReader(str) buf := make([]byte, 5) for { n, err := r.Read(buf) if err == io.EOF { break } fmt.Print(string(buf[:n])) } }
strings.SplitN是Go语言的字符串处理函数之一,用于根据指定的分隔符将字符串拆分成多个子字符串,并限制拆分的数量。该函数的返回值是一个切片,其中包含拆分后的子字符串。
用法示例:
package main
import (
"fmt"
"strings"
)
func main() {
str := "hello/world/how/are/you"
result := strings.SplitN(str, "/", 3)
fmt.Println(result) // 输出:[hello world how/are/you]
}
日期
package main import ( "fmt" "time" ) func main() { now := time.Now() fmt.Printf("now=%v not type=%T\n", now, now) dateStr := fmt.Sprintf("当前年月日: %d-%02d-%d %d:%d:%d", now.Year(), now.Month(), now.Day(), now.Hour(), now.Minute(), now.Second()) fmt.Println(dateStr) start := time.Now().Unix() time.Sleep(5*time.Second) end := time.Now().Unix() fmt.Printf("test 用时%v秒",end - start) fmt.Printf(now.Format("2006-01-02 15:04:05")) fmt.Println() fmt.Printf(now.Format("2006-01-02")) fmt.Println() fmt.Printf(now.Format("15:04:05")) fmt.Println() }
3.json数据处理
json.Unmarshal
golang中json.Unmarshal是一个用于将JSON数据解析成Go语言数据结构的函数。它的作用是将一个JSON字符串解码并将其内容存储到相应的Go数据结构中。
package main import ( "encoding/json" "fmt" ) type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { jsonStr:=`{ "name":"xiaochuan", "age":10 } ` fmt.Println(jsonStr) var person Person err:=json.Unmarshal([]byte(jsonStr),&person) if err!=nil{ fmt.Println(err) } fmt.Println(person.Name) fmt.Println(person.Age) }
json.Marshal
使用Golang的json.Marshal函数可以将一个Go语言的结构体或者数据转换为对应的JSON格式数据。
package main import ( "encoding/json" "fmt" ) type Person struct { Name string `json:"name"` Age int `json:"age"` } func main() { jsonStr:=`{ "name":"xiaochuan", "age":10 } ` fmt.Println(jsonStr) var person Person err:=json.Unmarshal([]byte(jsonStr),&person) if err!=nil{ fmt.Println(err) } fmt.Println(person.Name) fmt.Println(person.Age) data,err:=json.Marshal(person) if err!=nil{ fmt.Println(err) } fmt.Println(string(data)) }
4.switch
package main import "fmt" func main() { num := 2 switch num { case 1: fmt.Println("数字为1") case 2: fmt.Println("数字为2") default: fmt.Println("数字不是1或2") } }