Go思想及语法

1.微服务架构统一思想----------12元素(factors)

  1. 基准代码;一份基准代码,多份部署
  2. 依赖;显式声明依赖关系
  3. 配置;在环境中存储配置
  4. 后端服务;把后端服务当作附加资源
  5. 构建,发布,运行;严格分离构建和运行
  6. 进程;以一个或者多个无状态进程运行应用
  7. 端口绑定;通过端口绑定提供服务
  8. 并发;通过进程模型进行扩展
  9. 易处理;快速启动和优雅终止可最大化健壮性
  10. 开发环境与线上环境等价;尽可能的保持开发,预发布,线上环境相同
  11. 日志;把日志当作事件流
  12. 管理进程;后台管理任务当作一次性进程运行

2.Go语言的原则

        Go语言是一个可以编译高效,支持高并发,面向垃圾回收的全新语言。        

2-1 Go test

        Go语言原生自带的测试

import "testing"

func TestIncrease(t *testing.T){
    t.Log('start testing")
    increase(1,2)
}

        go test ./... -v   运行测试

        go test 命令稻苗所有*_test.go为结尾的文件,惯例是将测试代码与正式代码放在同目录,如foo.go的测试代码一般协程foo_test.go

2-2 Go vet

        代码静态检查,发现可能的bug或者可疑的构造

  1. print-format错误,检查类型不匹配的print;
  2. Boolean错误,检查一直为true、false
  3. Range循环,比如如下代码主协程会退出,go routine无法被执行
  4. return 之后竟然还有代码
  5. 其他错误,比如变量自己赋值,error检查滞后等

3.Go语法

          3-1 if语法

if condition1 {
    //do
} else if condition2{
    //do
} else {
    //catch-all
}

//if的简短语句
if v:=x - 100; v <0{
    //do
}

        3-2switch语法

switch var1 {
    case var1://空分支
    case val2://
        fallthrough   执行case3中函数
    case var3:
        f()
    default: //默认分支
    ....
}
每个case其实自带的是break

        3-3 For循环

Go只有一种循环结构:for循环
1. 计入计数器的循环
    for i := 0; i < 10; i++ {
        sum += i
    }
2. 初始化语句和后置语句是可选的,此场景和while等价(Go不支持while)
    for ;sum < 100 {
        sum += sum
    }
3. 死循环
    for {
        if sum > 100{
            break
        }
        sum += 1
    }
4.For-range
支持遍历数组、切片、字符串、Map等
    for index,char := range myString{
        index是下标  char 是元素
    }

    for key,value := range myMap{
        key是 键值
        value 是值
    }
需要注意的是:如果 for range 遍历指针数组,则value取出的指针地址为原指针地址的拷贝。

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟道xn

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值