2023年11月29日发(作者:)
gounix转化为time_Go语⾔基础(九)
Go语⾔基础(九)
⼀、Time包
⼆、输出⽇志
三、反射
⼀、Time包
1、()获取当前时间对象
func timeNow() {
now := ()
n(now)
输出结果
2、时间戳
时间戳是⾃1970年1⽉1⽇(08:00:00GMT)⾄当前时间的总毫秒数,它也成为了Unix时间戳。
func unixTimeStamp() {
now := ()
timeStamp1 := ()
func (t Time) Before(u Time) bool
如果t代表的时间点在u之前,返回真,否则返回假。
e、After
func (t Time) After(u Time) bool
如果t代表的时间点在u之后,返回真,否则返回假。
5、定时器
使⽤(时间间隔)来设置定时器,定时器本质上是⼀个通道channel。
func timeTick() {
package main
import (
"fmt"
"time"
)
func f2() {
1、⽇志库需求分析
a、⽀持往不同的地⽅输出⽇志
b、⽇志分级,Debug、Trace、Info、Warning、Error、Fatal
c、⽇志要⽀持开关控制
d、⽇志要有时间、⾏号、⽂件名、⽇志级别、⽇志信息
e、⽇志要切割
按⽂件⼤⼩切割,每次记录⽇志之前都判断⼀下当前写的这个⽂件⼤⼩
按⽇期分割,在⽇志结构体中设置⼀个字段记录上次切割的⼩时数
在写⽇志之前检查⼀下当前⼩时数和之前保存的是否⼀致,不⼀致就要切割
// ⽇志级别
type LogLevel uint16
const (
UNKNOWN LogLevel = iota
funcName = (funcName, ".")[1]
return
}
// 构造函数
func NewLog(LevelStr string) Logger {
package main
import (
"fmt"
type Kind uint
const (
Invalid Kind = iota
Bool
package main
import (
"fmt"
"reflect"
)
func reflectValue(x interface{}) {
IsNil()报告v持有的值是否为nil,v持有的值的分类必须是通道,函数,接⼝,映射,指针,切⽚之⼀,否则函数isNil函数会导致panic。
IsNil()常被⽤于判断指针为空。
func (v Value) IsValid() bool
IsValid()返回v是否持有⼀个值。如果v是Value零值会返回假,此时v除了IsValid,String,Kind之外的⽅法都会导致painc。IsValid()常
被⽤于判定返回值是否有效。
package main
import (
"fmt"
"reflect"
)
func main() {
// *int类型空指针
var a *int
n("var a *int IsNil:", f(a).IsNil())
// nil值
n("nil IsValid:", f(nil).IsValid())
type StructField struct {
// Name是字段的名字。PkgPath是⾮导出字段的包路径,对导出字段该字段为""。
// 参见/ref/spec#Uniqueness_of_identifiers
Name string
PkgPath string
Type Type // 字段的类型
Tag StructTag // 字段的标签
Offset uintptr // 字段在结构体中的字节偏移量
Index []int // ⽤于yIndex时的索引切⽚
Anonymous bool // 是否匿名字段
}
举个例⼦:
package main
import (
"fmt"
"reflect"
)
type student struct {
Name string `json:"name"`
Score int `json:"age"`
}
func main() {
stu1 := student{
Name: "⼩王⼦",
继续加油~!


发布评论