Go语言资料整理

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())
}

你可能感兴趣的:(golang开发)