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")
}
}
浙公网安备 33010602011771号