golang---知识点总结2

golang时间格式化

格式化输出时间:

package main

import (
	"fmt"
	"time"
)

func main(){
	//未格式化
	fmt.Println(time.Now().Unix())
	//只取年
	fmt.Println(time.Now().Format("2006"))
	//只取月
	fmt.Println(time.Now().Format("01"))
	//所有全部格式化输出
	fmt.Println(time.Now().Format("2006-01-02 15:04:05"))
}

必须是这个时间点, 据说是go诞生之日

格式化输出

func testprint(){
	str1 := "haha"
	str2 := "2020-09"
	str3 := "23"
	str := fmt.Sprintf("%[1]s/%[3]s/.json.gz",str1,str2,str3)

	fmt.Println(str)
}
***运行结果***
haha/23/.json.gz
func testprint(){
	str1 := "haha"
	str2 := "2020-09"
	str3 := "23"
	str := fmt.Sprintf("%[1]s/%[2]s/.json.gz",str1,str2,str3)

	fmt.Println(str)
}
***运行结果***
haha/2020-09/.json.gz

可见序号的功能是指定后面输出的变量。

创建目录

 os.Mkdir("abc", os.ModePerm)              //创建目录   
 os.MkdirAll("dir1/dir2/dir3", os.ModePerm)   //创建多级目录   

运算符

  • Go语言还提供了以下的bit位操作运算符,前面4个操作运算符并不区分是有符号还是无符号数:
& 位运算 AND 
| 位运算 OR (有一个为1则为1)
^ 位运算 XOR 
&^ 位清空 (AND NOT) 
<< 左移 
>> 右移

新建文件

f, err := os.OpenFile(filename_tmp, os.O_WRONLY|os.O_CREATE, 0755)

中间的表示写的模式

omitempty的用法

omitempty作用是在json数据结构转换时,当该字段的值为该字段类型的零值时,忽略该字段。

例子:

type AggregatedSample struct {
	MostRecentSuccess *TimeVersionIP `json:"tls-full,omitempty"`
	MostRecentPartial *TimeVersionIP `json:"tls-SH,omitempty"`
	Bitmaps           Bitmaps        `json:"tls-ver-bitmaps"`
	SeenRefuse        bool           `json:"443_refused"` //可见拒绝
}

可参考:https://blog.csdn.net/skh2015java/article/details/90720692

模糊的知识点

  • os.Stat()、os.IsNotExist
  • flock.New()
  • sync.RWMutex中的Rlock,RUnlock
  • 一些代码顺序不是很清楚

你可能感兴趣的:(golang,go,golang)