本文共 2451 字,大约阅读时间需要 8 分钟。
在开始编写代码之前,首先需要为项目创建一个合适的工作空间。Go语言的包管理和项目结构与其他语言有所不同,需要理解其工作原理。
源文件是项目开发的核心文件,通常位于项目根目录下。Go语言的源文件扩展名为.go
。
包名需遵循以下命名规则:
包中成员的访问权限由名称大小写决定:
代码示例:
// counters包提供告警计数器功能package counters// alterCounter是一个未公开的类型// 用于保存告警计数器type alterCounter int// 小写字母开头,包外不可见type AlterCounter int// 大写字母开头,包外可见
解决方案:
alterCounter
类型的值。.java
文件都可以有一个唯一的main
方法作为启动函数。main
方法的文件。Go模块导入示例:
import ( "log" "runtime")
包替换命令:
replace "liwenzhou.com/q1mi/p2" => "../p2"
log
包提供一个多routine安全的日志记录器。
日志格式化设置:
func init() { log.SetPrefix("TRACE: ") log.SetFlags(log.Ldate | log.Lmicroseconds | log.Llongfile)}
日志方法示例:
log.Println("message") // 默认格式:时间戳 文件名:行号 消息log.Fatalln("fatal message") // 在Println后调用os.Exit(1)log.Panicln("panic message") // 在Println后调用panic()
日志输出示例:
TRACE: 2021/04/19 18:55:55.188845 D:/GO/src/code.practise/test_log/test_log1.go:15: messageTRACE: 2021/04/19 18:55:55.297291 D:/GO/src/code.practise/test_log/test_log1.go:18: fatal message
日志方法定义:
const ( Ldate = 1 << iota Ltime Lmicroseconds Llongfile Lshortfile LUTC Lmsgprefix LstdFlags = Ldate | Ltime)
自定义日志记录器:
Trace = log.New(ioutil.Discard, "TRACE: ", log.Ldate|log.Ltime|log.Lshortfile)Info = log.New(os.Stdout, "INFO: ", log.Ldate|log.Ltime|log.Lshortfile)Warning = log.New(os.Stdout, "WARNING: ", log.Ldate|log.Ltime|log.Lshortfile)Error = log.New(io.MultiWriter(file, os.Stderr), "ERROR: ", log.Ldate|log.Ltime|log.Lshortfile)
日志方法列表:
func (l *Logger) Fatal(v ...interface)func (l *Logger) Fatalf(format string, v ...interface)func (l *Logger) Fatalln(v ...interface)func (l *Logger) Flags() intfunc (l *Logger) Output(calldepth int, s string) errorfunc (l *Logger) Panic(v ...interface)func (l *Logger) Panicf(format string, v ...interface)func (l *Logger) Panicln(v ...interface)func (l *Logger) Prefix() stringfunc (l *Logger) Print(v ...interface)func (l *Logger) Printf(format string, v ...interface)func (l *Logger) Println(v ...interface)func (l *Logger) SetFlags(flag int)func (l *Logger) SetPrefix(prefix string)
处理方法:
string
,然后转换为[]byte
。json.Unmarshal
反序列化到一个map
中。处理方法:
json.MarshalIndent
进行编码。map
或结构体类型值转换为易读的JSON文档。[此部分内容待补充]
转载地址:http://jbxj.baihongyu.com/