Go语言学习之结构体和方法使用详解

目录1. 结构体别名定义2. 工厂模式3. Tag 原信息4. 匿名字段5. 方法1. 结构体别名定义变量别名定义package mainimport "fmt"type integer intfunc main() { //类型别名定义...

Go语言学习之文件操作方法详解

目录引言1. 打开和关闭文件2. 读取文件2.1 defer 语句2.2 手动宕机处理2.3 打开文件并获取内容2.4 bufio 读取文件2.5 ioutil 读取文件2.6 读取奇偶行内容3. 写入文件3.1 os...

go程序部署到linux上运行的实现方法

目录一、win10上的操作二、linux 端 ubuntugo 语言版本:go1.9.2 开发环境:win10部署环境:ubuntu 14.04.6一、win10上的操作1、在src目录下依次执行set CGO_ENABLED=0、set GOOS...

Go语言中循环语句使用的示例详解

目录一、概述1. 循环控制语句2. 无限循环二、Go 语言 for 循环1. 语法2. for语句执行过程3. 示例4. For-each range 循环三、循环嵌套1. 语法2. 示例四、break 语句1. 语法2...

Go 语言入门学习之时间包

目录1.前言2.日期和时间的表示当前时间日期函数如何在Golang中获取当前UNIX的时间戳3.访问时间组件的方法1.前言时间和日期对于任何编程语言来说都是一个非常重要的包。 GO...

使用GO操作MongoDB的方法

目录安装MongoDB驱动程序连接MongoDB列出所有数据库从MongDB中查询数据查询单个文档查询多个文档更新多个文档删除MongoDB文档获取MongoDB服务状态安装MongoDB驱动程序mkdr...

go语言心跳超时的实现示例

目录一、背景二、心跳超时的实现2.1 通过select case (设计概念比较多)2.2 通过time.sleep(简单有效)三、个人的实现观感一、背景本文描述的是客户端接收心跳信息的超时实现。心...

300行代码实现go语言即时通讯聊天室

学了2年Java,因为工作原因需要转Golang,3天时间学习了下go的基本语法,做这样一个聊天室小项目来巩固串联一下语法。实现的功能:公聊,私聊,修改用户名只用到了四个类:main.go:用来启...

golang读取各种配置文件(ini、json、yaml)

目录viper读取ini文件viper读取json文件viper读取yaml文件日常项目中,读取各种配置文件是避免不了的,这里介绍一个能读取多种配置文件的库,viperviper读取ini文件config := vip...

go micro集成链路跟踪的方法和中间件原理解析

目录链路跟踪实战安装zipkin程序结构安装依赖包编写服务端编写客户端Wrap原理分析服务端WrapHandlerWrapperWrap Handler客户端WrapXXXWrapperWrap Client客户端Wrap和服务...

Golang+Vue轻松构建Web应用的方法步骤

目录介绍项目结构后端结构前端结构一些细节为什么使用JWT缓存实现请求限流从零开发前端运行总结最近疫情在家,空闲时间比较多,整理下之前写的Golang项目Weave,补充了一些功能,加...

解决Golang并发工具Singleflight的问题

目录前言定义用途简单Demo源码分析结构对外暴露的方法重点方法分析Do流程图ForgetdoCall实际使用弊端与解决方案参考文章前言前段时间在一个项目里使用到了分布式锁进行共享...

Go官方限流器的用法详解

目录限流器的内部结构构造限流器使用限流器Wait/WaitNAllow/AllowNReserve/ReserveN动态调整速率和桶大小总结限流器是提升服务稳定性的非常重要的组件,可以用来限制请求速率...

Go 函数中获取调用者的函数名和文件名及行号

目录背景runtime.Caller获取调用者的函数名使用示例总结前言:今天介绍了通过 runtime.Caller 回溯调用栈获取调用者的信息的方法,虽然强大,不过频繁获取这个信息也是会对程序性...

golang通过node_exporter监控GPU及cpu频率、温度的代码

导语:通过node_exporter监控GPU以及cpu频率、温度,不想用一个node_exporter再加一个dcgm,分开监控。我这里监控的是热区的温度。如果需要监控各个cpu核心的温度需要修改一下代...

Golang编程并发工具库MapReduce使用实践

目录环境项目需求mapReduce使用说明需求实现业务逻辑创建任务队列运行结果结论引申阅读环境go version go1.16.4 windows/amd64Intel(R) Core(TM) i7-7820HK CPU @ 2.90GHz...

Go 语言入门之net/url 包

目录引言URL 格式Go url 包函数使用格式如何使用 URL 包在 Golang 中对查询字符串进行 URL 编码在 Golang 中对多个查询参数进行 URL 编码在 Golang 中对路径段进行 URL 编...

go语言中匿名函数的作用域陷阱详解

众所周知在go语言中函数也可以当作变量在程序中使用,我们可以使用函数字面量在任何表达式内指定函数变量。但是在编写代码的时候请注意:如果一个函数在使用不是在该函数内部定...

深入了解Go项目标准目录布局

目录应用项目cmdinternalpkgN:vendor库项目小结很多的时候,我们开发一个简单的Go项目的时候并不需要纠结于项目的的目录布局,因为我们会将所有go源码文件扔在项目的根目录中,就...

Go 数据结构之二叉树详情

目录Go 语言实现二叉树定义二叉树的结构二叉树遍历创建二叉树插入值测试前言:树可以有许多不同的形状,并且它们可以在每个节点允许的子节点数量或它们在节点内组织数据值的方...

详解如何在Go语言中调用C源代码

目录开坑说明内嵌形式外置的C代码1. 构建libauth.a静态库2. 对main.go稍加修改3. 编译开坑说明最近在编写客户端程序或与其他部门做功能集成时多次碰到了跨语言的sdk集成,虽...

Go语言实现23种设计模式的使用

目录创建型模式工厂方法模式 Factory Method问题解决抽象工厂模式 Abstract Factory问题解决建造者模式 Builder问题解决原型模式 Prototype问题解决单例模式 Singleton问题...

深入理解Go语言实现多态 

目录多态是什么Go语言多态举例总结多态是什么相信学过Java这种面向对象语言的同学对于多态来说都不陌生,在代码执行的时候,能够根据子类的类型去执行子类当中的方法。多态是指...

Go语言利用Unmarshal解析json字符串的实现

简单的解析例子:首先还是从官方文档中的例子:package mainimport (    "fmt"    "encoding/json")type Animal struct {    Name  string    Order string}func ma...

Go语言编程实现支持六种级别的日志库 

目录前言初始需求技术实现类型定义日志级别写到文件默认实现前言Golang标准日志库提供的日志输出方法有Print、Fatal、Panic等,没有常见的Debug、Info、Error等日志级别,用起...

使用Golang搭建web服务的实现步骤

如何用golang搭建一个web服务呢?菜鸟官网的go web编程教程已经介绍了web服务器的工作原理,这里就不赘述了。我们先看个例子:http.gopackage mainimport ( "fmt" "io"...

Go 语言入门之Go 计时器介绍

目录引言Go 的计时器Ticker 计时器是如何工作的?Ticker 使用方式总结引言一般来说,很多时候我们面临这样一种情况,即我们需要运行时间记录器,它不断向我们显示当前时间或在给定...

Go实现分布式唯一ID的生成之雪花算法

目录背景:特性:雪花算法:分布式唯一ID的生成背景:在分布式架构下,唯一序列号生成是我们在设计一个尤其是数据库使用分库分表的时候会常见的一个问题特性:全局唯一,这是基本要...

go-micro集成RabbitMQ实战和原理详解

目录Broker的核心功能发布订阅go-micro集成RabbitMQ实战启动一个RabbitMQ编写收发函数编写主体代码go-micro集成RabbitMQ的处理流程填的几个坑不能接收其它框架发布的消息Ra...

详解go mod 使用方法

目录1、进入grammar文件夹2、初始化目录3、导入自定义的模块4、导入本地没有的模块常用命令1、初始化模块2 、获取远程的模块3、 查看当前依赖模块4、清除未使用到的依赖go...

通过Golang编写一个AES加密解密工具

目录前言AES加密介绍及实现原理AES用在哪里AES加密是如何实现的AES加密模式Go实现AES加密工具scode前言本文包含如下两个内容:AES加密介绍及实现原理Go实现AES加密和解密工具...

go语言中如何使用select的实现示例

目录1.基本语法2.select语句的实际应用在golang语言中,select语句 就是用来监听和channel有关的IO操作,当IO操作发生时,触发相应的case动作。有了 select语句,可以实现 main主线...

go语言代码生成器code generator使用示例介绍

目录代码生成器介绍code-generator示例代码生成tag全局tag局部tag补充代码生成器介绍client-go为每种k8s内置资源提供了对应的clientset和informer。那么我们要监听和操作自...

golang并发工具MapReduce降低服务响应时间

目录前言并发处理工具MapReduceMapReduce的用法演示MapReduce使用注意事项实现原理分析:文末前言在微服务中开发中,api网关扮演对外提供restful api的角色,而api的数据往往会...

Go并发编程sync.Cond的具体使用

目录简介详细介绍案例:Redis连接池注意点简介Go 标准库提供 Cond 原语的目的是,为等待 / 通知场景下的并发问题提供支持。Cond 通常应用于等待某个条件的一组 goroutine,等条件...

深入理解 Go 中的字符串

目录字符串的本质字符串的底层原理字符串的本质在编程语言中,字符串发挥着重要的角色。字符串背后的数据结构一般有两种类型:一种在编译时指定长度,不能修改一种具有动态的长度...

详解Go语言中泛型的实现原理与使用

目录前言问题解决方法类型约束重获类型安全泛型使用场景性能虚拟方法表单态化Go 的实现结论前言原文:A gentle introduction to generics in Go byDominik Braun万俊峰Kevin:...

Go 处理大数组使用 for range 和 for 循环的区别

目录副本复制问题性能对比遍历结构体数组结论前言:对于遍历大数组而言, for 循环能比 for range 循环更高效与稳定,这一点在数组元素为结构体类型更加明显。我们知道,Go 的语法...

Go 的入口函数和包初始化的使用

目录包 packagemain.main 函数:Go 应用的入口函数package main注意其他包也可以拥有 main 函数或方法重点引子init 函数:Go 包的初始化函数和 main 函数不一样init 函数的执行...

Golang实现AES加密和解密的示例代码

目录对称加密 AES 算法加解密文件加密解密说明对称加密 AES 算法(Advanced Encryption Standard ,AES)优点算法公开、计算量小、加密速度快、加密效率高。缺点发送方和接收方...

golang实现简单rpc调用过程解析

目录基本概念RPC通信过程RPC 具体实现server端客户端基本概念RPC(Remote Procedure Call)远程过程调用,简单的理解是一个节点请求另一个节点提供的服务,该协议允许运行于一台计...

Golang CSP并发机制及使用模型

目录CSP并发模型Golang CSPChannelGoroutineGoroutine 调度器总结今天介绍一下 go语言的并发机制以及它所使用的CSP并发模型CSP并发模型CSP模型是上个世纪七十年代提出的,用...

Goland中Protobuf的安装、配置和使用

目录引言1、安装protobuf编译器2、下载protobuf的golang支持库,安装protoc-gen-go3、protobuf使用示例引言本文记录了mac环境下protobuf的编译安装,并通过一个示例来演示proto...

Go到底能不能实现安全的双检锁(推荐)

目录不安全的双检锁sync.Once的启示安全的双检锁处理panic处理error有范围的单例双检锁的性能从其他语言转入Go语言的同学经常会陷入一个思考:如何创建一个单例?有些同学可能...

基于golang的轻量级工作流框架Fastflow

目录为什么要开发 FastflowConcept工作流模型工作流的要素DagTaskActionDagInstance实例类型与ModuleGetStart准备一个Mongo实例运行 fastflowBasicTask与Task之间的通信任...

go语言实现银行卡号Luhn校验

目录一、银行卡号码的校验规则二、生成符合Luhn规则的银行卡号测试数据思路:整个代码如下:一、银行卡号码的校验规则银行卡号码的校验采用Luhn算法,校验过程大致如下:1. 从右到...

go smtp实现邮件发送示例详解

目录smtp指令go demosdk中SendMail方法DialAndSend实现smtp指令书接上文邮件实现详解,这里我们及我们简单复习一下smtp的指令如下:telnet smtp.163.com 25[outpout]ehlo dz456...

Go语言学习函数+结构体+方法+接口

目录1. 函数1.1 函数返回值同一种类型返回值带变量名的返回值函数中的参数传递函数变量1.2 匿名函数——没有函数名字的函数在定义时调用匿名函数将匿名函数赋值...

Golang实现可重入锁的示例代码

目录什么是可重入锁具体实现项目中遇到了可重入锁的需求和实现,具体记录下。什么是可重入锁我们平时说的分布式锁,一般指的是在不同服务器上的多个线程中,只有一个线程能抢到一...

CSP communicating sequential processes并发模型

目录前言GO并发模型的实现原理内核级线程模型两级线程模型Go线程实现模型MPGGoroutine 小结优点:缺点:前言https://www.jb51.net/article/228730.htm请记住下面这句话:DO NOT C...

返回顶部
顶部