返回介绍

PART Ⅰ : 容器云OPENSHIFT

PART Ⅱ:容器云 KUBERNETES

PART Ⅲ:持续集成与持续部署

PART Ⅴ:日志/监控/告警

PART Ⅵ:基础

PART Ⅶ:数据存储、处理

PART VIII:CODE

PART X:HACKINTOSH

PART XI:安全

基础语法

发布于 2024-06-08 21:16:45 字数 4501 浏览 0 评论 0 收藏 0

/main.go 入口文件
/config 配置
/router 路由
  |—— api.go
  |-- web.go
/handler 请求处理器
  |-- user.go
/middleware 中间件
  |-- jwtToken.go
/model 模型
  |-- user.go
/test 测试
  • 函数内定义的变量称为局部变量
  • 函数外定义的变量称为全局变量
  • 函数定义中的变量称为形式参数
type Test struct {
  A string `json:"a`
  B int `json:"b"`
}

struct转json

var t Test
t.A="测试"
t.B=2

jsonBytes, err := json.Marshal(t)
if err != nil {
    fmt.Println(err)
}
fmt.Println(string(jsonBytes))

json转struct

jsonStr := `{
                    "a": "测试",
          "b": 2
        }`
var t Test
json.Unmarshal([]byte(jsonStr), &t)
fmt.Println(t)
var (
    router *gin.Engine
)

func init (){
  router = gin.Default()
}

func main(){
  router.GET("/",func(context *gin.Context) {})
}
var test_array = [5]float32{1000.0, 2.0, 3.4, 7.0, 50.0}
for _,a := range test_array {
    fmt.Println(a)
}

var test_array = [3]string{"test1","test2"}
for _,a := range test_array {
    fmt.Println(a)
}

golang程序初始化先于main函数执行,由runtime进行初始化,初始化顺序如下:

  1. 初始化导入的包(包的初始化顺序并不是按导入顺序(“从上到下”)执行的,runtime需要解析包依赖关系,没有依赖的包最先初始化,与变量初始化依赖关系类似,参见golang变量的初始化);
  2. 初始化包作用域的变量(该作用域的变量的初始化也并非按照“从上到下、从左到右”的顺序,runtime解析变量依赖关系,没有依赖的变量最先初始化,参见golang变量的初始化);
  3. 执行包的init函数;

变量初始化->init()->main()

方式一

type config struct {
    App     string
    Port    int      `default:"8000"`
    IsDebug bool     `env:"DEBUG"`
    Hosts   []string `slice_sep:","`
    Timeout time.Duration
    Redis struct {
        Version string `sep:""` // no sep between `CONFIG` and `REDIS`
        Host    string
        Port    int
    }
    MySQL struct {
        Version string `default:"5.7"`
        Host    string
        Port    int
    }
}

方式二

var (
    key1 string
    key2 string
    appConfig = &config.AppConfig{
        AppID:          os.Getenv("APP_NAME"),
        Cluster:        os.Getenv("APP_ENV"),
    }
)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文