2022-01-05
34
var 声明一个或者多个变量 你可以一次申明多个变量 go自动推断已经初始化的类型zmedu:~ mac$ cat fds.go
package main
import "fmt"
func main(){var a string = "inital"fmt.Println(a)var b,c int = 1,2fmt.Println(b,c)var d = truefmt.Println(d)var e intfmt.Println(e)f := "short"fmt.Println(
2022-01-05
321
InfluxDB基础操作
基础操作连接
[root@localhost ~]# influx -precision rfc3339
Connected to http://localhost:8086 version 1.8.0
InfluxDB shell version: 1.8.0
>precision参数表明了任何返回的时间戳的格式和精度,在上面的例子里,rfc3339是让InfluxD
2022-01-05
81
项目的需要,对zap日志库做了简单的封装,主要是支持如下的功能:
1、支持同步和异步的方式。
2、支持根据不同的日志级别调用不同的writer处理.
具体实现如下
type ZapLogOper interface {Debug(msg string, fields ...zap.Field)Info(msg string, fields ...zap.Field)Warn(msg string, fields ...zap.Field)Error(msg string, fields ...zap.Fi
2022-01-05
49
1. 冒泡排序(bubble sort)的基本思想:比较相邻两个 元素的关键字值,如果反序,则交换func BubbleSort(arr []int) {flag := false//外层控制行for i := 0; i < len(arr)-1; i++ {//内层控制列for j := 0; j < len(arr)-1-i; j++ {//比较两个相邻元素if arr[j] >
2022-01-05
45
我使用Go和gRPC创建了一个微服务,并将程序设计和编程的最佳实践应用于该项目。 我写了一系列关于在项目工作中做出的设计决策和取舍的文章,此篇是关于程序设计。程序的设计遵循清晰架构(Clean Architecture)¹。 业务逻辑代码分三层:用例(usecase),域模型(model)和数据服务(dataservice)。有三个顶级包“usecase”,“model”和“dataservice”,每层一个。 在每个顶级包(模型除外)中只有一个以该包命名的文件。 该文件为每个包定义了外部世界的接口。 从
2022-01-05
292
一开始写了一个client-java版本的,但是java放在k8s集群上跑需要装jvm而且java的包比较大,client-go版本更适合主机端,下面是整个实现说明:k8s官方维护的客户端库只有go和python版本,所以为了稳定性建议使用这两个版本,考虑到k8s是go实现的,我这里也就选择go版本。至于客户端连接k8s集群,在具体的生产环境中不建议外部连接访问。原因一是生产环境中的k8s配置文件重要,一般如果对接其他公司的业务,虽然有鉴权,人家也不愿意把配置文件拷贝给你,因为有了集群的配置文件,外部的这
2022-01-05
66
3.Go语言数据类型
书接上篇,我们了解了Go语言的 结构体类型,本篇介绍Go语言的指针类型。主要如下:
3.8 指针
指针是一个代表着某个内存地址的值。这个内存地址往往是在内存中存储的另一个变量的值的起始位置。Go语言既没有像Java语言那样取消了代码对指针的直接操作的能力,也避免了C/C++语言中由于对指针的滥用而造成的安全和可靠性问题。
Go语言的指针类型指代了指向一个给定类型的变量的指针。它常常被称为指针的基本类型。指针类型是Go语言的复合类型之一。
3.8.1 类型表示法
可以通过在任何一个有效
2022-01-05
25
package mainimport ("fmt""strconv"
)type Attach func(string) stringfunc (a Attach) loopTimes(n int) string {for i := 1; i < n; i ++ {a(strconv.Itoa(i))}return a(strconv.Itoa(n))
}func newAttach() Atta