十三.字符串
字符
uint8类型,或者叫 byte 型,代表一个ASCII码字符。
转义字符
\r 回车符(返回行首)
\n 换行符(直接跳到下一行的同列位置)
\t 制表符
\' 单引号
\" 双引号
\\ 反斜杠
Go语言中要定义一个多行字符串时,需要使用反引号字符''
常用操作
len(str) 求长度
+或fmt.Sprintf 拼接字符串
strings.Split 分割
strings.contains 判断是否包含
strings.HasPrefix,strings.HasSuffix 前缀/后缀判断
strings.Index(),strings.LastIndex() 子串出现的位置
strings.Join(a[]string, sep string) join操作
举例:
package main
import (
"fmt"
"strings"
)
func main() {
var s1 string = "Hello Go"
var s2 string = "Hello World"
fmt.Println(len(s1)) //打印字符串长度
var s3 = s1 + s2 //字符串拼接
s4 := fmt.Sprintf("123-%s", s1) //字符串拼接
fmt.Println(s4)
fmt.Println(s3)
fmt.Println(s1+s2)
ret := strings.Split(s4,"-")
fmt.Println(ret)
fmt.Println(strings.Contains(s1,"Go")) //包含
}
字符串格式化输入输出
个人认为,和C很相似
func main(){
var num int = 139
fmt.Printf("%b\n",num)
fmt.Printf("%o\n",num)
fmt.Printf("%x\n",num)
fmt.Printf("%X",num)
var b int = 19
var c int = 012
var d int = 0xa1
fmt.Println(b, c, d)
}
十四.JSON处理
1.基本类型的序列化
func main() {
var num int = 23
res, err := json.Marshal(num)
if err != nil{
fmt.Println("序列化出错")
}
fmt.Println(string(res))
}
2.结构体序列化
要求结构体属性名第一个字母必须大写!!!
type Student struct {
//注意:如果属性小写,则序列化不了,序列化的结果就是空
name string
Age int
Address string
Hobby []string
}
func main(){
var stu Student = Student{
name:"jack",
Age:23,
Address:"西安",
Hobby:[]string{
"basketball","football","ping-pong","eat",
},
}
res, err := json.Marshal(&stu)
if err != nil{
fmt.Println("序列化失败")
return
}
fmt.Println(string(res))
}
3.MAP序列化
type Student struct {
//注意:如果属性小写,则序列化不了,序列化的结果就是空
name string
Age int
Address string
Hobby []string
}
func main(){
var stu Student = Student{
name:"jack",
Age:23,
Address:"西安",
Hobby:[]string{
"basketball","football","ping-pong","eat",
},
}
var mymap map[string]interface{} = make(map[string]interface{})
mymap["name"] = "jack"
mymap["age"] = 36
mymap["stu"] = stu
res, err := json.Marshal(mymap)
if err != nil{
fmt.Println("序列化失败")
return
}
fmt.Println(string(res))
}
4.切片序列化
type Student struct {
//注意:如果属性小写,则序列化不了,序列化的结果就是空
name string
Age int
Address string
Hobby []string
}
func main(){
var stu Student = Student{
name:"jack",
Age:23,
Address:"西安",
Hobby:[]string{
"basketball","football","ping-pong","eat",
},
}
var mymap []map[string]interface{}
var mymap1 map[string]interface{} = make(map[string]interface{})
var mymap2 map[string]interface{} = make(map[string]interface{})
mymap1["name"] = "jack"
mymap1["age"] = 36
mymap1["stu"] = stu
mymap2["name"] = "jack"
mymap2["age"] = 36
mymap2["stu"] = stu
mymap = append(mymap, mymap2)
mymap = append(mymap,mymap1)
res, err := json.Marshal(mymap)
if err != nil{
fmt.Println("序列化失败")
return
}
fmt.Println(string(res))
}
十五.时间处理
now: = time.Now() t=time.Date(2023,8,21,11,49,36,0,time.UTC)