defer panic recover
json序列化
monster := Monster{"a",2,"d"}
jsonStr,err := json.Marshal(monster)
if err != nil{
fmt.Println("json ", err)
}
fmt.Println(string(jsonStr))
data,err := json.Marshal(&monster)
fmt.Println(string(data))
json反序列化
var monster Monster
err := json.Unmarshal([]byte(str),&monster)
fmt常用的格式化字符串
%c = 字符 该值对应的unicode码值
%d = 整数 表示为十进制,打印10进制整数
%v = 是个通用的占位符。它会自动将变量转换为默认格式的字符串,这在打印字符串或数字等原语时非常有用,而且不需要特定的选项
%f = 打印浮点数,可以通过%8.2f,%-8.2f,%08.2f,% f等来控制打印字符串的空格
%t = 单词true或false
%q 能打印加引号的字符串。当您的数据可能有不可见字符(如空字符串)时,这是有用的,因为引用的字符串将它们打印为转义序列。
%x和%X 打印16进制整数
%p 打印变量的指针地址。当您正在调试代码并且希望检查不同的指针变量是否引用相同的数据时,这个方法非常有用。
%T 打印变量的类型
基本数据转string
第一
fmt.Sprintf("%参数",表达式)
fmt.Sprintf("%d",num1) //int
fmt.Sprintf("%f",numl) //float
fmt.Sprintf("%t",b) //bool
fmt.Sprintf("%c",myChar) //byte
第二
var num3 int = 99
str = strconv.FormatInt(int64(num3),10)
fmt.Printf("str type %T str=%q\n",str,str)
var num4 float64 = 23.857
str = strconv.FormatFloat(num4,'f',10,64)
var b2 boot = true
str=strconv.FormatBool(b2)
var num5 int64 = 4567
str = strconv.Itoa(int(num5))
string转基本数据
var str string = "true"
var b bool
b,_ = strconv.ParseBool(str)
var str2 string = "1234567890"
var n1 int64
n1,_ = strconv.ParseInt(str,10,64) //Atoi()常用的应该就是 Atoi() 了,而这个函数时 ParseInt 的一个简易版。在 Atoi 函数的内部
fmt.Print("n1 type %T n1=%v",n1,n1)
var str3 string = "123.456"
var f1 float64
f1,_ = strconv.ParseFloat(str3,64)
文件操作
1、打开文件读操作:
如:os.Open(name string)(*File,error)
例:
file,err := os.Open("e:/test.txt")
if err != nil {
fmt.Println("err=",err)
}
fmt.Printf("file=%v",file)
err = file.Close()
if err != nil{
fmt.Println("err=",err)
}
2、关闭文件
File.Close()
时间函数
获取当前时间
now := time.Now()
fmt.Printf("now=%v now type=%T",now,now)
//2.通过now可以获取到年月日,时分秒
fmt.Printf("年=%v\n",now.Year())
fmt.Printf("月=%v\n",now.Month()) fmt.Printf("月=%v\n",int(now.Month()))
fmt.Printf("日=%v\n",now.Day())
fmt.Printf("时=%v\n",now.Hour())
fmt.Printf("分=%v\n",now.Minute())
fmt.Printf("秒=%v\n",now.Second())
格式化日期和时间
1、
fmt.Prinf("当前年月日 %d-%d-%d %d:%d:%d \n",now.Year(),now.Month(),now.Day(),now.Hour(),now.Minute(),now.Second())
dateStr := fmt.SPrintf("当前年月日 %d-%d-%d %d:%d:%d \n",now.Year(),now.Month(),now.Day(),now.Hour(),now.Minute(),now.Second())
fmt.Printf("datestr=%v",dateStr)
2、
now := time.Now()
fmt.Printf(now.Format("2006/01/02 15:04:05"))
fmt.Printf(now.Format("2006/01/02"))
fmt.Printf(now.Format("15:04:05"))
Unix和UnixNano的使用
now := time.Now()
fmt.Printf("Unix时间=%v UnixNano时间=%v \n",now.Unix(),now.UnixNano())