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 是一个用于创建一个新的 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")
    }
}

  

 

posted @ 2023-08-24 14:58  妇愁者纞萌  阅读(17)  评论(0编辑  收藏  举报