• 1. 开启泛型 在 Go1.17 版本中,可以通过: export GOFLAGS="-gcflags=-G=3" 或者在编译运行程序时加上: go run -gcflags=-G=3 main.go 2.无泛型代码和泛型代码 2.1. AddSlice 首先看现在没有泛型的代码:  package main ​ import ( "fmt" ) ​...

    分类:未命名 阅读:186 次 评论:0 发布时间:2022-11-25
  • 结构体类型可以用来保存不同类型的数据,也可以通过方法的形式来声明它的行为。本文将介绍go语言中的结构体和方法,以及“继承”的实现方法。 结构体类型 结构体类型(struct)在go语言中具有重要地位,它是实现go语言面向对象编程的重要工具。go语言中没有类的概念,可以使用结构体实现类似的功能,传统的OOP(Object-Oriented Programming)思想中的继承在go中可以通过嵌入字段的方式实现。 结构体的声明与定义:...

    分类:未命名 阅读:194 次 评论:0 发布时间:2022-11-25
  • 1.前言 虽然在 go 中,并发编程十分简单, 只需要使用 go func() 就能启动一个 goroutine 去做一些事情,但是正是由于这种简单我们要十分当心,不然很容易出现一些莫名其妙的 bug 或者是你的服务由于不知名的原因就重启了。 而最常见的bug是关于线程安全方面的问题,比如对同一个map进行写操作。 2.数据竞争 线程安全是否有什么办法检测到呢? 答案就是 data race tag,go 官方早在 1.1...

    分类:未命名 阅读:182 次 评论:0 发布时间:2022-11-25
  • 使用JWT进行认证 JSON Web Tokens (JWT) are a more modern approach to authentication. As the web moves to a greater separation between the client and server, JWT provides a wonderful alternative to traditional cookie base...

    分类:未命名 阅读:164 次 评论:0 发布时间:2022-11-25
  •        部门产品业务功能采用Golang开发,但是有些功能是用c写的,比如说net-snmp,bfd协议等等,像这些如果使用GO语言重编的话,既有实现的复杂度也需要相当长的时间,好在GO语言提供了CGO机制,使得能够在go代码中直接调用C的库函数,大大提高了效率,减少了重复开发工作,此外还支持在C语言中调用GO函数,这一点还是蛮强大的。 1. Go语言调用C函...

    分类:未命名 阅读:179 次 评论:0 发布时间:2022-11-25
  • yaml文件内容 apiVersion: policy/v1beta1 kind: PodSecurityPolicy metadata: name: mysql-snapshot spec: privileged: false allowPrivilegeEscalation: false volumes: - "*" hostNetwork: false hostIPC: fa...

    分类:未命名 阅读:218 次 评论:0 发布时间:2022-11-25
  • 一、什么是MQTT MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。 MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等...

    分类:未命名 阅读:223 次 评论:0 发布时间:2022-11-25
  • 前言 Go的错误处理这块是日常被大家吐槽较多的地方,我在工作中也观察到一些现象,比较严重的是在各层级的逻辑代码中对错误的处理有些重复。 比如,有人写代码就会在每一层都判断错误并记录日志,从代码层面看,貌似很严谨,但是如果看日志会发现一堆重复的信息,等到排查问题时反而会造成干扰。 今天给大家总结三点Go代码错误处理相关的最佳实践给大家。 这些最佳实践也是网上一些前辈分享的,我自己实践后在这里用自己的语言描述出来,希望能对大家有所帮...

    分类:未命名 阅读:188 次 评论:0 发布时间:2022-11-25
  • 使用 Go 语言开发微服务的时候,需要追踪每一个请求的访问链路,这块在 Go 中目前没有很好的解决方案。 在 Java 中解决这个问题比较简单,可以使用 MDC,在一个进程内共享一个请求的 RequestId。 在 Go 中实现链路追踪有两种思路:一种是在项目中使用一个全局的 map, key 是 goroutine 的唯一 Id,value 是 RequestId,另一种思路可以使用 context.Context 来实现。 下...

    分类:未命名 阅读:159 次 评论:0 发布时间:2022-11-25
  • 在早期经常遭到唾弃的就是在垃圾回收(下称:GC)机制中 STW(Stop-The-World)的时间过长。那么这个时候,我们又会好奇一点,作为 STW 的起始,Go 语言中什么时候才会触发 GC 呢? 1、什么是 GC 在计算机科学中,垃圾回收(GC)是一种自动管理内存的机制,垃圾回收器会去尝试回收程序不再使用的对象及其占用的内存。 最早 John McCarthy 在 1959 年左右发明了垃圾回收,以简化 Lisp 中的手动内...

    分类:未命名 阅读:199 次 评论:0 发布时间:2022-11-25
  • 一、基础介绍 Go 是静态(编译型)语言,是区别于解释型语言的弱类型语言(静态:类型固定,强类型:不同类型不允许直接运算) 例如 python 就是动态强类型语言 1、Go 的特性 跨平台的编译型语言,交叉编译 管道(channel),切片(slice),并发(routine) 有垃圾回收机制 支持面向对象和面向过程的编程模式(Go 的面向对象没有类的概念) 2、Go 的常用命令 go env // go的环境...

    分类:未命名 阅读:191 次 评论:0 发布时间:2022-11-25
  • 1、逃逸分析介绍 学计算机的同学都知道,在编译原理中,分析指针动态范围的方法称之为逃逸分析。通俗来讲,当一个对象的指针被多个方法或线程引用时,我们称这个指针发生了“逃逸”。 Go语言的逃逸分析是编译器执行静态代码分析后,对内存管理进行的优化和简化,它可以决定一个变量是分配到堆还栈上。 写过C/C++的小伙伴应该知道,使用比较经典的malloc和new函数可以在堆上分配一块内存,这块内存的使用和回收(销毁)的任务在程序员中,处...

    分类:未命名 阅读:202 次 评论:0 发布时间:2022-11-25
  • ‘…' 其实是go的一种语法糖。 它的第一个用法主要是用于函数有多个不定参数的情况,可以接受多个不确定数量的参数。 第二个用法是slice可以被打散进行传递。 实例: package main import ( "fmt" ) func main(){ name(1,2,3,4,5,6,7,8,9) //多个不确定数量的参数 var strss= []string{...

    分类:未命名 阅读:190 次 评论:0 发布时间:2022-11-25
  •       很多小伙伴在使用搜狗输入法电脑版的时候,想知道自动升级怎么关闭,下面小编就为大家带来搜狗输入法电脑版自动升级关闭方法,感兴趣的小伙伴不要错过哦!       搜狗输入法电脑版自动升级怎么关闭?搜狗输入法电脑版自动升级关闭方法      &nbs...

    分类:未命名 阅读:215 次 评论:0 发布时间:2022-11-24
  •       有的小伙伴会问小编搜狗输入法电脑版怎么长句手写,下面小编就为大家详细的介绍一下,想知道的话就来看看吧,相信一定会帮到你们的。       搜狗输入法电脑版怎么长句手写?搜狗输入法电脑版长句手写教程       1、首先打开电脑的搜狗输...

    分类:未命名 阅读:211 次 评论:0 发布时间:2022-11-24
网站分类
二维码