Go语言环境搭建详解
《Go语言实战》笔记(二)| Go开发工具
《Go语言实战》笔记(三)| Go Doc 文档
《Go语言实战笔记》(五)| Go 切片
《Go语言实战笔记》(四)| Go 数组
Go语言实战笔记(六)| Go Map
《Go语言实战》笔记(九) | Go 接口
《Go语言实战》笔记(一)| Go包管理
Go语言实战》笔记(十二) | Go goroutine
《Go语言实战》笔记(二十六) | Go unsafe 包之内存布局
结构体格式化输出
package main
import (
"flag"
"fmt"
"bytes"
"encoding/json"
)
type RedisConfig struct {
IP string
PORT string
AUTH int
PASS string
}
type DbConfig struct {
Host string
Port int
Uid string
Pwd string
DbName string
}
//Config 游戏服务器的配置
type Config struct {
ServerId int
Port int //端口号
Redis *RedisConfig
DbConfigs map[string]*DbConfig //如果配置多个数据库源,则用逗号分隔源的名字
callbacks []func()
}
func (conf *Config) String() string {
b, err := json.Marshal(*conf)
if err != nil {
return fmt.Sprintf("%+v", *conf)
}
var out bytes.Buffer
err = json.Indent(&out, b, "", " ")
if err != nil {
return fmt.Sprintf("%+v", *conf)
}
return out.String()
}
func main(){
conf:=Config{
ServerId:1,
Port:8080,
Redis:&RedisConfig{
IP:"127.0.0.1",
PORT:"3679",
},
DbConfigs: map[string]*DbConfig{
"maindb": &DbConfig{
Host:"127.0.0.1",
} ,
},
}
fmt.Println("Config:",conf.String())
}