golang slice

Golang开发新手常犯的50个错误

《50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs》 原文地址:http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang ......
错误 新手 Golang

Golang Copy 制整个文件夹或单个文件; //Move 文件

// Copy 制整个文件夹或单个文件 func Copy(from, to string) error {​​​ f, e := os.Stat(from) if e != nil {​​​​​​​​​​ fmt.Println("没有找到要拷贝的路径:", from) return e }​​​ ......
文件 单个 文件夹 Golang Copy

golang对于[]byte数组转string进行比较的优化

当需要比较两个`[]byte`数组是否相等时有好几种方案,下面可以看出前三种方案都是优化过的,效率高的方案。 ```go package main import ( "bytes" "crypto/rand" mr "math/rand" "testing" ) func StringEqual(n ......
数组 golang string byte

【解决一个小问题】golang 的 `-race`选项导致 unsafe代码 panic

**作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢!** * [cnblogs博客](https://www.cnblogs.com/ahfuzhang/) * [zhihu](https://www.zhihu.com/people/ahfuzhang/posts) * [G ......
代码 golang unsafe 问题 panic

golang 遍历并批量压缩图片

package main import ( "bytes" "fmt" "image" "io/ioutil" "mylog" "os" "path" "github.com/nfnt/resize" _ "image/gif" "image/jpeg" _ "image/png" ) func m ......
golang 图片

Golang Println、Printf、Sprintf的区别(笔记)

Println :可以打印出字符串,和变量 Printf : 只可以打印出格式化的字符串,可以输出字符串类型的变量,不可以输出整形变量和整形 Sprintf:用传入的格式化规则符将传入的变量格式化,(终端中不会有显示),返回为 格式化后的字符串 ......
Println Sprintf 笔记 Golang Printf

golang 实现cas

相比sync.WaitGroup里面的互斥锁,cas可以实现无锁等待一组任务执行完成后释放,示例代码如下 ```go func TestCAS(t *testing.T) { var count int32 = 10000 for i := 0; i 0 { } t.Log("task exec f ......
golang cas

golang 闭包,装饰器

``` package main import ( "fmt" "strings" ) func makeSuffixFunc(suffix string) func(string) string { return func(name string) string { if !strings.Has ......
闭包 golang

golang之fmt格式化

常用fmt中用于格式化的占位符 普通占位符 占位符 说明 举例 输出 %v 相应值的默认格式。 Printf("%v", people) {zhangsan}, %+v 打印结构体时,会添加字段名 Printf("%+v", people) {Name:zhangsan} %#v 相应值的Go语法表 ......
格式 golang fmt

Golang 应用脚手架

Nunu 提供了全面的文档和示例,帮助你快速入门。它还包括一套测试套件,确保你的应用程序按预期工作。 安装要求 要使用 Nunu,你需要在系统上安装以下软件: Golang 1.16 或更高版本 Git MySQL 5.7 或更高版本(可选) Redis(可选) 安装 你可以通过一行命令安装 Nun ......
脚手架 Golang

golang 访问 http 请求下载资源

正常情况下,下面这段代码可以获取到`响应结构体的字节流`,反序列化一下就能得到响应结构体,当 url 是一个互联网对象资源时,即访问该 url 是用来下载资源时,下面这段代码获取到的就是`被资源的二进制流` ```golang func HttpGet(url string) ([]byte, er ......
golang 资源 http

Golang全栈开发----Golang基础知识

第一章 基础语法 1. 注释 注释就是对代码的解释和说明,其目的是让人们能够更加轻松地了解代码。注释是开发人员一个非常重要的习惯,也是专业的一种表现。单行注释是最常见的注释形式,你可以在任何地方使用以 // 开头的单行注释。多行注释也叫块注释,均已以 /* 开头,并以 */ 结尾。 单行注释:ctr ......
Golang 基础知识 基础 知识

Golang 定时任务 github/robfig/cron/v3

robfig/cron/v3 是一个 Golang 的定时任务库,支持 cron 表达式。低耦合高内聚,其中涉及装饰器模式,并发处理等。 package main import "github.com/robfig/cron/v3" c := cron.New() // 添加一个任务,每 30 分钟 ......
任务 Golang github robfig cron

golang之jwt

golang-jwt是go语言中用来生成和解析jwt的一个第三方库。本文中使用目前最新的v5版本。 安装 go get -u github.com/golang-jwt/jwt/v5 在代码中引用 import "github.com/golang-jwt/jwt/v5" 结构体 假设jwt原始的p ......
golang jwt

golang 系列:sync.Once 讲解

sync.Once 介绍 之前提到过 Go 的并发辅助对象:WaitGroup。同样的, sync.Once 也是 Go 官方的一并发辅助对象,它能够让函数方法只执行一次,达到类似 init 函数的效果。我们来看看它的简单用法: func main() { var once sync.Once on ......
golang Once sync

golang实现设计模式汇总-创建型 | 结构型 | 行为型

历时一个多星期的常用设计模式暂告一段落,今天汇总下使用频率较高的几种常见设计模式。 以下个人根据类型分为3种,不喜勿喷: * 创建型 * 结构型 * 行为型 ### 1.创建型 常用如下: * [单例模式](https://juejin.cn/post/7238604003599974456) * ......
结构型 设计模式 行为 模式 结构

golang实现设计模式之代理模式-优缺点,适用场景

`代理模式`作为一种结构型的设计模式,因为某种原因,需要对访问的对象通过代理访问目标对象,访问对象不适合或者不能直接引用该目标对象,代理就成为访问对象和目标对象的中介。 **结构** * 1.抽象主题(Subject)类。通过接口或抽象类声明真实主题和代理对象实现的业务方法。 * 2.真实主题(Re ......
模式 设计模式 优缺点 场景 golang

golang实现设计模式之策略模式-优缺点,适用场景

`策略模式`是一种行为型的设计模式,该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户,或者认为把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。 **结构** * 1.抽象策略(Strategy)类。定义了一个公共接口,各 ......
模式 设计模式 优缺点 场景 策略

golang实现设计模式之模板模式-优缺点,适用场景

`模板模式`是一种行为型设计模式,其定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 **特点** * 1.算法结构已确定。 * 2.具体实现交由子类实现。 **结构** * 1.抽象类(Abstract Class)。算 ......
模式 设计模式 优缺点 场景 模板

golang实现设计模式之装饰器模式-优缺点,适用场景

`装饰器模式`是一种结构型设计模式,简单概括就是:不改变先有对象结构下,动态给对象增加一些职责。 装饰器模式通过组合方式实现,与继承的异同: * 使用继承方式,具有静态特征,耦合度高,并且随着扩展功能的增多,子类会很膨胀。 * 使用组合方式,创建装饰对象来装饰真实对象,原对象功能不变,另外扩展。 * ......
模式 设计模式 优缺点 场景 golang

golang实现设计模式之组合模式-优缺点与适用场景

`组合模式`是一种将对象组合成树状的层次结构的模式,用来表示“整体-部分”的关系,使用户对单个对象和组合对象具有一致的访问性,属于结构型设计模式。 **结构** * `抽象构件(Component)角色`:它的主要作用是为树叶构件和树枝构件声明公共接口,并实现它们的默认行为。在透明式的组合模式中抽象 ......
模式 设计模式 优缺点 场景 golang

golang实现设计模式之责任链模式-优缺点,适用场景

`责任链模式`是一种行为型的设计模式,也叫职责链,定义:在这样的场景中,请求需要经过一系列的处理者,通过列表或者链表将处理者组合起来,请求依次被处理者处理,如果需要中断,也可以及时退出处理。上述的这种的应用场景,典型的就是在 `web` 应用中的 `中间件或者拦截器`,比如 `Gin框架` 的中间件 ......
模式 设计模式 优缺点 场景 责任

golang实现设计模式之适配器模式-优缺点,适用场景

`适配器模式`是一种结构型设计模式,它是通过接口转换,使得原先接口不被兼容的其他类可以一起工作。 **类型** * 类结构型 特点: \- 程序耦合性高 \- 要求程序员对组件内部结构熟悉 \- 应用相对少些 类适配器模式可以用过继承的方式来实现。 * 对象结构型 特点:可重用性较差。 对象适配器允 ......

golang实现设计模式之观察者模式-优缺点,适用场景

`观察者模式`是一种行为型模式,其定义一种订阅机制, 可在对象事件发生时通知多个 “观察” 该对象的其他对象。 观察者模式常用 `订阅/发布机制`,即发布者持有所有订阅者,当发布者状态变更或者特定行为时,通知所有订阅者。 **结构** * 1.发布者。属性及行为:属性,订阅者列表,行为,添加、删除订 ......

golang中make与new的区别

# golang中make与new的区别 ## new函数 new官方文档的描述: ~~~~~~go // The new built-in function allocates memory. The first argument is a type, // not a value, and th ......
golang make new

Golang 配置代理

通过 go get 命令下载各种依赖时,经常需要访问 github/google 等网站。配置好代理后,可以快速稳定的访问。 常用的 go 代理 goproxyhttps://goproxy.io/zh/ 阿里云https://mirrors.aliyun.com/goproxy/ 七牛云https ......
Golang

golang IOT 服务端基本架构

1. 简图 2. 网关功能 2.1 通用功能 负责和硬件端建立并维护TCP连接 黑白名单 熔断,限流 和后端业务服务交换处理数据 2.2 业务功能 自定义协议解析 设备上下线(绑定,注册等) 3. 底层环境 基于K8S+Rancher多POD 发布工具JK 镜像仓库:register ......
架构 golang IOT

Golang环境搭建

1、go环境下载地址:https://studygolang.com/dl 2、查看go安装状态: go version 3、学习指南 https://tour.go-zh.org/welcome/1 4、环境变量和相关配置 4.1 Windows环境下安装 # 1、配置Go环境变量-GOROOT ......
环境 Golang

go-tc golang tc 工具包

go-tc 是基于golang 的限速工具包,可以通过修改队列通过filter 以及类别进行限速处理,是一个听方便的golang 包类似的有基于cli 的wondershaper 可以通过cli 实现限速 参考资料 https://github.com/florianl/go-tchttps://g ......
工具包 工具 golang go-tc tc

golang导入私有仓库报错:“server response: not found:xxx: invalid version: git ls-remote -q origin in xxx“

1.问题:go get导入私有仓库报错 ➜ go get "devops.gitlab.xxx.com/test/kafka-utils" go: devops.gitlab.xxx.com/test/kafka-utils@v0.0.1: verifying go.mod: devops.gitl ......
仓库 ls-remote xxx response invalid