分类 golang 下的文章

时间戳转日期

// 当前时间戳(time类型)
now := time.Now()
// 当天零点格式化日期
StartTime := time.Date(now.Year(), now.Month(), now.Day(), 0, 0, 0, 0, now.Location())
// 当天零点时间戳(int64)
StartTimeStamp := StartTime.Unix()

// 指定时间戳转化为日期  
datetime = time.Unix(timestamp, 0).Format("2021-09-30 15:04:05")

日期格式转时间戳

// 日期字符串
date := "2021-09-30 15:04:05"
// 字符串转time类型
time := time.parse("2006-01-02 15:04:05", date)
// time转时间戳(int64)
timestamp := time.Unix()

if 条件运算符

•   not 非{<!-- -->{if not .condition}} {<!-- -->{end}}
•   and 与{<!-- -->{if and .condition1 .condition2}} {<!-- -->{end}}
•   or 或{<!-- -->{if or .condition1 .condition2}} {<!-- -->{end}}
•   eq 等于{<!-- -->{if eq .var1 .var2}} {<!-- -->{end}}
•   ne 不等于{<!-- -->{if ne .var1 .var2}} {<!-- -->{end}}
•   lt 小于 (less than){<!-- -->{if lt .var1 .var2}} {<!-- -->{end}}
•   le 小于等于{<!-- -->{if le .var1 .var2}} {<!-- -->{end}}
•   gt 大于{<!-- -->{if gt .var1 .var2}} {<!-- -->{end}}
•   ge 大于等于{<!-- -->{if ge .var1 .var2}} {<!-- -->{end}}

goroot go安装路径

gopath 项目路径

一般目录结构是
bin:编译后的二进制可执行文件
pkg:存放了go get的包的源码(我的是这样)
分为全局路径和项目路径

gomod

依赖管理通过go.mod文件来管理。
GO111MODULE 是一个开关,通过它可以开启或关闭 go mod 模式。

GO111MODULE=off禁用模块支持,编译时会从GOPATH和vendor文件夹中查找包。
GO111MODULE=on启用模块支持,编译时会忽略GOPATH和vendor文件夹,只根据 go.mod下载依赖。
GO111MODULE=auto,当项目在$GOPATH/src外且项目根目录有go.mod文件时,自动开启模块支持。

go env ex:

GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOCACHE="/Users/yangshuo/Library/Caches/go-build"
GOENV="/Users/yangshuo/Library/Application Support/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOINSECURE=""
GOMODCACHE="/Users/yangshuo/git/zyb/go_project/mark/pkg/mod"
GONOPROXY="*.zuoyebang.cc"
GONOSUMDB="*.zuoyebang.cc"
GOOS="darwin"
GOPATH="/Users/yangshuo/git/zyb/go_project/mark"
GOPRIVATE="*.zuoyebang.cc"
GOPROXY="https://goproxy.cn,direct"
GOROOT="/usr/local/Cellar/go/1.16.6/libexec"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/usr/local/Cellar/go/1.16.6/libexec/pkg/tool/darwin_amd64"
GOVCS=""
GOVERSION="go1.16.6"
GCCGO="gccgo"
AR="ar"
CC="clang"
CXX="clang++"
CGO_ENABLED="1"
GOMOD="/Users/yangshuo/git/zyb/go_project/mark/markapi/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -arch x86_64 -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fdebug-prefix-map=/var/folders/dn/2jhjt8k16y9c2yl7s1w8_1jr0000gn/T/go-build1386797669=/tmp/go-build -gno-record-gcc-switches -fno-common"

1. Substr(str string, start int, length int) string

a := "abcde"
b := Substr(a, 1, 2) 
fmt.Println(b)

// bc

2.[:]

a := "abcde"
b := a[1:3]
fmt.Println(b)

// bc

fmt.Sprintf()、Printf()、Fprintf()

fmt.Sprintf()

只格式化,不会输出到命令行。

fmt.Printf()

格式化输出