retry-go retry 113 go

【迭代器设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

简介 迭代器模式(Iterator Pattern),是一种结构型设计模式。给数据对象构建一套按顺序访问集合对象元素的方式,而不需要知道数据对象的底层表示。 迭代器模式是与集合共存的,我们只要实现一个集合,就需要同时提供这个集合的迭代器,就像Java中的Collection,List、Set、Map ......
设计模式 语言 模式 Python Java

go-JWT

JWT Cookie-Session认证模式 在Web应用发展的初期,大部分采用的是基于Cookie-Session的会话管理模式 客户端使用用户名、密码进行认证 服务端验证用户名、密码正确后生成并存储在Session中,将SessionID用过Cookie返回给客户端 客户端访问需要认证的接口时在 ......
go-JWT JWT go

Go基础语法(一)

GO(一) go mod init test go mod tidy 快速生成代码片段 pkgm main包+main主函数 ff fmt.Printf("",var) for for i:=0;i<count;i++{} fmain func main(){} a.print! fmt.Print ......
语法 基础

Go基础语法(三)

GO(三) Go语言切片(Slice) slice 并不是数组或数组指针。它通过内部指针和相关属性引用数组片段,以实现变长方案。 Go 语言切片是对数组的抽象。 Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go 中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片 ......
语法 基础

Go语言多线程

Go语言多线程 (转) 大多数语言使用线程+并发同步访问控制作为并发模型,而 Go 的并发模型由 goroutine 和 channel 组成。线程类似于 goroutine,而并发同步访问控制则类似于 mutex。 Go 并发的理念是:简单,尽量使用 channel,尽情使用 goroutine。 ......
线程 语言

高德Go生态的服务稳定性建设|性能优化的实战总结

目前go语言不仅在阿里集团内部,在整个互联网行业内也越来越流行,本文把高德过去go服务开发中的性能调优经验进行总结和沉淀,希望能为正在使用go语言的同学在性能优化方面带来一些参考价值。 ......
稳定性 实战 生态 性能

go embed (2)

Go 1.16新特性:embed包及其使用详解 embed是什么 embed是在Go 1.16中新加包。它通过//go:embed指令,可以在编译阶段将静态资源文件打包进编译好的程序中,并提供访问这些文件的能力。 为什么需要embed包 部署过程更简单。传统部署要么需要将静态资源与已编译程序打包在一 ......
embed go

go embed

go在1.16之后引入了一个新包 embed,它使我们访问工程内的代码变的相对容易 概览 它支持讲内部文件转换为 string, []byte和一个embed像是的fs结构。 用法如下 import _ "embed" //go:embed hello.txt var s string print( ......
embed go

Go 语言环境安装

转载自:https://www.runoob.com/go/go-environment.html Go 语言支持以下系统: Linux FreeBSD Mac OS X(也称为 Darwin) Windows 安装包下载地址为:https://golang.org/dl/。 如果打不开可以使用这个 ......
语言 环境 Go

Go 每日一库之 fsnotify

上一篇文章Go 每日一库之 viper中,我们介绍了 viper 可以监听文件修改进而自动重新加载。其内部使用的就是fsnotify这个库,它是跨平台的。今天我们就来介绍一下它。 快速使用 先安装: $ go get github.com/fsnotify/fsnotify 后使用: package ......
fsnotify Go

go test main包报错

前言 先提出问题, 再说明原因. 有如下一段代码: 当执行go test测试时, 会报如下错误: main.test /var/folders/55/47pl3jxx6rg7m0r6xvn4f7wr0000gn/T/go-build2769402238/b001/_testmain.go:13:8: ......
test main go

Go笔记(七):Map

map是一种key:value键值对的数据结构容器,通过key检索value,是引用类型。map内部实现是哈希表。 1、Map的声明 1.1、显示声明 1、语法 /* 声明变量,默认 map 是 nil */ var map_variable map[key_data_type]value_data ......
笔记 Map

Go For Web:Golang http 包详解(源码剖析)

前言: 本文作为解决如何通过 Golang 来编写 Web 应用这个问题的前瞻,对 Golang 中的 Web 基础部分进行一个简单的介绍。目前 Go 拥有成熟的 Http 处理包,所以我们去编写一个做任何事情的动态 Web 程序应该是很轻松的,接下来我们就去学习了解一些关于 Web 的相关基础,了 ......
源码 Golang http For Web

用 Go 剑指 Offer 56 - I. 数组中数字出现的次数

一个整型数组 nums 里除两个数字之外,其他数字都出现了两次。请写程序找出这两个只出现一次的数字。要求时间复杂度是O(n),空间复杂度是O(1)。 示例 1: 输入:nums = [4,1,4,6] 输出:[1,6] 或 [6,1] 示例 2: 输入:nums = [1,2,10,4,1,4,3, ......
数组 次数 数字 Offer Go

用 Go 剑指 Offer 31. 栈的压入、弹出序列 (辅助栈)

输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序。假设压入栈的所有数字均不相等。例如,序列 {1,2,3,4,5} 是某栈的压栈序列,序列 {4,5,3,2,1} 是该压栈序列对应的一个弹出序列,但 {4,3,5,1,2} 就不可能是该压栈序列的弹出序列。 示例 1 ......
序列 Offer Go 31

linux中systemctl管理go服务 (gin)git部署

go安装 下载 https://golang.google.cn/dl/ 解压至指定目录,一般到/usr/local sudo tar -C /usr/local -xzf go**.linux-amd64.tar.gz 设置环境变量 # 修改~/.bashrc 文件 $ sudo gedit ~/ ......
systemctl linux gin git

Go For Web:一篇文章带你用 Go 搭建一个最简单的 Web 服务、了解 Golang 运行 web 的原理

前言: 本文作为解决如何通过 Golang 来编写 Web 应用这个问题的前瞻,对 Golang 中的 Web 基础部分进行一个简单的介绍。目前 Go 拥有成熟的 Http 处理包,所以我们去编写一个做任何事情的动态 Web 程序应该是很轻松的,接下来我们就去学习了解一些关于 Web 的相关基础,了 ......
Web 篇文章 原理 Golang Go

Go语言使用TensorFlow

Go编程语言可以与TensorFlow一起使用。TensorFlow是由Google开发的流行的开源机器学习框架,提供了各种库和工具来构建和训练机器学习模型。TensorFlow支持多种编程语言,包括Python、C++、Java和Go。 要在Go中使用TensorFlow,可以使用TensorFl ......
TensorFlow 语言

Go笔记(六):切片

切片是对数组的拓展,在Go中数组的长度一旦定义无法被修改,切片的长度是不固定的,可以理解为切片是一个可变长度数组,是一个有相同类型元素的可变长度序列。 1、声明切片 1.1、显示声明切片 1、语法 声明切片语法如下: var sclicename []type 2、示例代码 1 package ma ......
笔记

Go For Web:踏入Web大门的第一步——Web 的工作方式

前言: 本文作为解决如何通过 Golang 来编写 Web 应用这个问题的前瞻,对 Golang 中的 Web 基础部分进行一个简单的介绍。目前 Go 拥有成熟的 Http 处理包,所以我们去编写一个做任何事情的动态 Web 程序应该是很轻松的,接下来我们就去学习了解一些关于 Web 的相关基础,了 ......
Web 大门 方式 For Go

go build gcc报错 /usr/bin/ld | cannot find -ldl cannot find -lpthread cannot find -lc

之前一直在kali或者其他ubuntu设备编译sliver, 临时在centos7上编译时报错了 # github.com/bishopfox/sliver/server /usr/local/go/pkg/tool/linux_amd64/link: running gcc failed: exi ......
cannot find lpthread build bin

go.mod版本管理

开心一刻 打麻将时,老板娘说快过年了想家了,特怀恋家乡的大饼卷大葱,蘸点酱就是人间美味,以前在老家她可以一口气吃三个。 两个女同事跟着附和,说胃口好身体好,什么山珍海味都比不过家乡的味道。。。 这些溜须拍马的话我真心说不出口,然后默默地。。。打出一张三筒。 老板娘:“胡!” 写在前面 现在大部分 g ......
版本 mod go

go-easy-utils 2.0 正式发布,全面支持泛型和any

介绍 这是一个基于 Go 语言开发的通用数据类型处理工具类,帮助开发者在业务代码实现中处理常见的数据类型和数据操作。可以让您专注于您的业务代码的实现,而免去处理基本数据类型转换和验证的功能。该工具库无侵入式的设计可以让您的业务代码更容易阅读和优雅。 快速开始 安装 使用 Go1.18 及以上版本的用 ......
go-easy-utils utils easy 2.0 any

go开发环境搭建

官网 https://golang.google.cn/dl/ Linux环境: cd /data/www wget https://golang.google.cn/dl/go1.14.7.linux-amd64.tar.gz // 解压并安装到 /usr/local tar -C /usr/lo ......
环境

使用go modules目录构成

首先在workspace工作空间gocode下面生成一个go.work文件,使用命令:go work init ./a工程 ./b工程,这里面要列出所有的工程 go.work文件内容: go 1.20 use ( ./src/chapter12 ./src/chapter13 ./src/chapt ......
modules 目录

go语言基础-数组

0x00 数组 go语言中的数组声明的基本语法: // 定义一个长度为3元素类型为int的数组a var a [3]int var 数组名称 [元素数量]元素类型 比如:var a [5]int, 数组的长度必须是常量,并且长度是数组类型的一部分。一旦定义,长度不能变。 [5]int和[10]int ......
语言基础 数组 语言 基础

go语言基础-切片

0x00 切片 切片(Slice)是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装。它非常灵活,支持自动扩容。切片是一个引用类型,它的内部结构包含地址、长度和容量。切片一般用于快速地操作一块数据集合。 0x00 切片的定义 切片的声明: var name []T //name:表 ......
语言基础 语言 基础

go语言基础-map

0x00 map map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。 0x00 map的定义 go语言当中map的定义 map[KeyType]ValueType //KeyType:表示键的类型 //ValueType:表示键对应的值的类型。 m ......
语言基础 语言 基础 map

go语言基础-变量和常量

0x00 标识符与关键字 0x01 标识符 go语言中的标识符是由数字,字母和_(下划线)组成的,并且只能由字母和_开头。eg:abc,_,_abc,abc1 0x02 关键字 关键字是指编程语言中定义好的具有特殊意义的标识符。(关键字和保留字都不建议作为变量名) go语言中常用的25个关键字 br ......
语言基础 常量 变量 语言 基础

go语言基础-基本数据结构

0x00 基本数据结构 go语言中,除了基本的整型、浮点型、布尔型、字符串外,还有数组、切片、结构体、函数、map、通道(channel)等。 0x00 整型(int) 整型分为以下两个大类: 按长度分为:int8、int16、int32、int64 对应的无符号整型:uint8、uint16、ui ......