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: "⼩王⼦",

继续加油~!