-
指针类型的反射操作需要注意类型安全和可寻址性。当你拿到一个reflect.Value表示指针类型时,必须使用Elem()方法解引用才能访问实际值,且只能对Ptr类型调用Elem(),否则会panic;如果你有一个非指针类型的reflect.Value但需要获取其指针,需使用Addr()方法,前提是该值必须是addressable,否则也会panic。1.Elem()用于从指针获取值,2.Addr()用于从值获取指针,两者常配合使用,如通过reflect.ValueOf(&s).Elem()获得可修改的结构
-
最近开始实习,工作技术栈主要Python和Golang,目前的任务把Python模块重构为GO模块,然后出现了一个问题,就是要将一个结构体按结构体中各个字段进行排序,然后写入Redis,对于Pyhon来说for循环
-
alertGo程序可以参考上篇文章,主要用于alertmanager实现钉钉报警
创建dockerfile
FROM golang:1.14-alpine
ENV GOPROXY=https://goproxy.cn
WORKDIR /build
COPY . .
EXPOSE 8088
RUN mkdir /app
RUN go mod tidy
RUN go build -o /app/alertGo
-
viper 支持 Yaml、Json、 TOML、HCL 等格式,读取非常的方便。
viper 官网有案例:https://github.com/spf13/viper
go get github.com/spf13/viper
创建 config.yaml 文件
database:
driver: mysql
host: 127.0.0.1
port: 3306
username:
-
go
main函数的执行本身就是一个协程,当使用go关键字的时候,就会创建一个新的协程
channel
channel 管道,用于在多个协程之间传递信号
无缓存管道
当对无缓冲通道写的时候,会一直阻塞等到
-
之前已经go get安装了gin, 现在来玩下用go gin server作图片上传服务, 代码目录如下:
taoge:~/test_gin$ tree
.
|-- public
|-- template
| `-- select_file.html
`-- test_gin_server.go
2 directories, 2 files
taoge:~/test_gin$
test
-
微服务架构里面,每个服务都会有很多节点,如果流量分配不均匀,会造成资源的浪费,甚至将一些机器压垮,这个时候就需要负载均衡,最简单的一种策略就是轮询,顺序依次选择不同的节点
-
本文实例讲述了Go语言清除文件中空行的方法。分享给大家供大家参考。具体实现方法如下:
这里使用Go语言读取源文件,去掉空行,并写到目标文件
复制代码 代码如下:/**
* Created with Intell
-
Go语言包中的 sync 包提供了两种锁类型:sync.Mutex 和 sync.RWMutex。Mutex 是最简单的一种锁类型,同时也比较暴力,当一个 goroutine 获得了 Mutex 后,其他 goroutine 就只能乖乖等到这个 goroutine 释放该 Mu
-
Go语言是编译型的静态语言(和C语言一样),所以在运行Go语言程序之前,先要将其编译成二进制的可执行文件。可以通过Go语言提供的go build或者go run命令对Go语言程序进行编译:go build 命令可
-
学习Go语言中的数据库函数并实现MongoDB集群的读写操作在Go语言中,使用数据库函数进行数据的读写操作是非常常见的需求。而MongoDB是目前非常流行的一种NoSQL数据库,它的特点是高性能、可扩展和灵活的数据格式。通过学习Go语言中的数据库函数,我们可以使用Go语言来实现MongoDB集群的读写操作,从而更好地利用MongoDB的优势。在开始之前,首先
-
Go语言是一种开源的编程语言,由谷歌公司开发并于2009年正式发布,其设计初衷是为了提高程序员的生产效率和代码的可维护性。Go语言的内置工具和库是其优越性的重要组成部分,本文将介绍其使用方法。Go语言内置工具Go语言的内置工具是指在安装Go语言时默认安装的一些可执行程序,这些程序在开发过程中有着重要的作用。常见的内置工具有以下几个:Go命令Go命令是Go语
-
随着区块链技术的发展,越来越多的企业开始关注如何将其用于交易处理。但是,与现有的中心化交易系统相比,区块链的处理速度仍然有限,这成为了业界普遍关注的问题。为此,一些创新者开始探索如何利用新的语言和技术来优化区块链的性能。本文将介绍利用Go语言实现高速交易处理的区块链应用。Go语言是一种快速、可靠、高效的语言,它非常适合于编写处理高负载并发任务的应用程序。因此
-
Beego是Go语言中一款常用的Web框架之一,其具有快速开发、二进制部署、高并发等优势。然而,在高并发请求环境下,Beego框架的性能优化需求凸显。本文将介绍如何通过合理的配置以及优化代码、缓存等方面来优化Beego的性能。一、采用高效的缓存机制采用缓存可以大大提升应用的性能,减少数据库查询的次数,而Beego框架的缓存机制也很简单易用,可以适用于不同规模
-
使用fmt.Scanf函数从输入中读取格式化的数据并赋值给变量在Go语言中,我们经常会需要从标准输入中读取用户输入的数据,并将其赋值给变量。fmt包中的Scanf函数可以帮助我们实现这个功能。本文将为大家介绍如何使用Scanf函数从输入中读取格式化的数据,并将其赋值给变量。首先,让我们来看一下Scanf函数的基本语法:funcScanf(formatst