为什么要使用go mod
go mod是Golang1.11版本新引入的官方包管理工具,用于解决之前没有地方记录依赖包具体版本的问题,方便依赖包的管理。
如何使用go mod
如下,新建一个go文件
package mainimport (iris "github.com/kataras/iris/v…
Go Modules模式
(1)go mod 命令
命令作用go mod init生成 go.mod 文件 / 在当前文件夹下初始化一个新的 go.mod 文件go mod download下载 go.mod 文件中指明的所有依赖 / 下载依赖的module到本地cachego mod tidy整理现有的依赖 / 增加失去的 module&a…
自己写了一个跑在Linux服务端的go程序,从客户端连接时提示:No connection could be made because the target machine actively refused it.然后关闭防火墙该,双向ping都能同,依然心灰意冷。但作为程序小白,百度了很多…
2.按照指定格式读取class 文件
2.1. class文件示例
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//public class ClassFileTest {public static final boolean FLAG false;public static final byte BYTE 123…
go mod vendor时报错 fatal: origin does not appear to be a git repository fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
然后git clone时也有提示
Permissions 0…
maps 包提供了几个非常有用的用于操作 map 类型(任何类型的 map)的函数,本文接下来详细介绍下这几个函数。
maps.Clone
定义如下:
func Clone[M ~map[K]V, K comparable, V any](m M) M
返回 m 的一个副本,因为新的…
一.函数
package mainimport "fmt"func getSum(n int, m int) int {return n m
}
func myFun(funcVar func(int, int) int, n int, m int) int {return sum(n, m)
}
func main() {a : myFun(getSum, 10, 20)fmt.Println(a)
}结果: 闭包:
p…
第一步:window 上设置 go 的编译环境
set GOARCHamd64 //本地和服务器都是64位 支持amd、amd64
set GOOSlinux //设置可执行程序运行操作系统,支持 darwin,freebsd,linux,windows 第二步:编…
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时…
2019独角兽企业重金招聘Python工程师标准>>> 原文:http://golang.org/doc/go_spec.html翻译:红猎人 (zengsaigmail.com) Properties of types and values 类型和值的属性 Two types are either identical or different, and they are either …
1.介绍
Go 1.21.0 是 Go 语言的最新版本,它将在 2023 年 8 月发布,会带来了一些语言和工具的变化。其中一个值得关注的变化是增加了两个新的内置函数 min 和 max,用来对任意可比较类型进行最小值和最大值的操作。这是很常见的需求࿰…
[toc]Golang flag包
代码
var s stringvar show boolfunc main() {flag.StringVar(&s, "test_filed", "this is default value", "this is description")flag.BoolVar(&show, "show", false, "no description")fl…
Go函数与变量
变量查找顺序
package main
import "fmt"
var a 100func main(){fmt.Println(a) //输出100
}package main
import "fmt"
var a 100func main(){a : 99fmt.Println(a) //输出99
}package main
import "fmt"
var a 100func f1()…
文章目录Go语言 学习笔记一、Go包管理1. 什么是Go语言中的包2. 包的命名3. main包4. 导入包5. 远程包导入6. 命名导入7. 包的init函数二、Go开发工具1. Go 开发工具概览2. go build3. go clean4. go run5. go env6. go install7. go get8. go fmt9. go vet10. go test三、Go D…
golang中的接口实现 // 定义一个接口
type People interface {getAge() int // 定义抽象方法1getName() string // 定义抽象方法2
}type Man struct {
}func (a *Man) getAge() int { // 实现抽象方法1return 18
}func (a *Main) getName() string { // 实现抽象方法2return &q…
scala运算符The Scala programming language doesnt support unary operators ( or --). In Scala, the binary operators are used to increment and decrement an integer. Scala编程语言不支持一元运算符( 或- )。 在Scala中,二进制运算符用于递增和递减整数。 …
安装篇 Downloading Kubernetes You can either build a release from sources or download a pre-built release. If you do not plan on developing Kubernetes itself, we suggest a pre-built release. Prebuilt Binary ReleaseBuilding from sourceDownload Kubernetes an…
题目来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/koko-eating-bananas
珂珂喜欢吃香蕉。这里有 N 堆香蕉,第 i 堆中有 piles[i] 根香蕉。警卫已经离开了,将在 H 小时后回来。
珂珂可以决…
并发
Go 的并发方案:goroutine
并行(parallelism),指的就是在同一时刻,有两个或两个以上的任务(这里指进程)的代码在处理器上执行。 并发不是并行,并发关乎结构,并行关…
1. go mod init
报错:go: cannot determine module path for source directory /Users/XXXXX/IdeaProjects/jedi-protocol-go (outside GOPATH, module path must be specified)
2. 直接新建go.mod,在里面添加 module src
3. 执行 go get
2019独角兽企业重金招聘Python工程师标准>>> 生成二维码我们需要使用到github的一个库,我们设置好GOPATH环境变量后,使用 go get github.com/boombuler/barcode 命令下载该库,在main.go中填写如下代码: package mainim…
golang项目,当我们微服务分模块开发时,习惯把main.go放在cmd目录下分模块放置,此时,我们在项目根目录下执行go test . 或go build . 时会报错“no Go files in ...”, 这是因为在.目录下找不到go程序,或者找不到程序入…
Context
// A Context carries a deadline, a cancellation signal, and other values across
// API boundaries.
// Context包含一个截止日期、一个取消信号和跨越API边界的其他值。// Contexts methods may be called by multiple goroutines simultaneously.
// Context的…
在更新了 go 版本后,使用 goland 进行调试会报错
WARNING: undefined behavior - version of Delve is too old for Go version 1.20.5 (maximum supported version 1.19)这是因为 go 的版本升级后,相对 dlv 的版本就低了。 所以解决办法就是升级对应的…
export GOPATH$HOME/goGOPATH是Go的一个系统变量,设置这个是为了指定Go的workspace. Find more in below page. https://github.com/golang/go/wiki/SettingGOPATH export PATH$HOME/go/bin:$PATH设置$HOME/go/bin到当前进程的系统运行目录. Find more in below pa…
GO 语言是一个高效、可靠和简洁的编程语言,越来越多的开发者开始选择 GO 语言来编写 Web 应用。本文将介绍如何使用 GO 语言编写 Web 应用,并且将重点关注使用 HTTP 路由和模板引擎。
使用 HTTP 路由
HTTP 路由是 Web 应用中非常重要的一个概念。它可以帮助我们将请求路由到…
首先,我们需要安装 rod 库,这是一个用于构建网络爬虫的 Go 语言库。 使用 go get 命令安装 rod 库:go get -u github.com/gofiber/rod 创建一个新的 Go 程序文件,例如:main.go 在 main.go 文件中,导入 r…
reg : regexp.MustCompile("【(.*?)】")
//userInfo姓名:【AAA姓名】证件类型:【BBB身份证】证件号码:【122456789458】tempData reg.FindAllStringSubmatch(userInfo, -1)for k, v : range tempData {if k 0 {tempReleaseUser.Name v[1]//AAA姓名} else if k 1…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
文章目录 前言常用命令go bug示例参数说明 go doc示例参数说明 go env示例 go fix示例 go fmt示例 go generate示例 总结写在最后 前言
接着上一篇继续介绍Go语言的常用命令
常用命令
以下是一些常用的Go命令,这些命令可以帮助您在Go开发中进行编译、测试、运行和…
1.在windows开发目录中,cd 到main.go目录下,在地址栏输入cmd 回车,打开当前目录的命令窗口,然后依次运行 打包配置命令
SET GOOSlinux
SET GOARCHamd64
2.开始打包linux 二进制运行文件
go guild
3.在main.go目录下生成一…
Go 语言中 range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数组和切片中它返回元素的索引和索引对应的值,在集合中返回 key-value 对。
在讲Go语言的range之前,我们先回顾下Python中range的用法
for i …
Leetcode Golang Day1~10 Golang每日一练(leetDay0001)
1. 两数之和 Two Sum
2. 两数相加 Add Two Numbers
3. 无重复字符的最长子串 Longest-substring-without-repeating-characters Golang每日一练(leetDay0002)
4. 寻找两个正序数组的中位数 Median of two sorted arra…
win10下安装govendor报错 go get -u -v github.com/kardianos/govendor 错误如下: github.com/kardianos/govendor (download) # cd .; git clone -- https://github.com/kardianos/govendor D:\vali\GoProjects\src\github.com\kardianos\govendor Cloning into D:…
学习目标
本文旨在帮助初学者了解 Golang 在不同环境下的安装方法,并提供相关资源和参考链接。
学习内容
安装 Golang on Windows 下载 Golang for Windows 安装包,地址:https://golang.org/dl/双击运行安装包,按照提示完成安装。配置环境变量: 在系统变量中添加 GOROO…
控制平面 : 管理集群中的工作节点和 Pod 节点 : 一组工作机器,称为节点,每个集群至少有一个节点 pod :节点会托管pod ,pod是所有业务类型的基础,也是K8S管理的最小单位级,它是一个或…
Go1.17 是 Go 语言的一个重要版本,于2021年8月16日发布。这个版本包含了一些新的特性、改进和 bug 修复,下面对其进行详细介绍。 Go 编译器和工具链的速度得到了大幅度提升。在新版本中,新增的 SSA 后端可以使 Go 编译器的编译速度提升 20% 至 30%。并且在 Go 1.17 版本中,…
这是每一个程序员和开发人员都问过的问题,还有很多人仍然在问,即使他们已经做出了自己的决定。Rust vs. Go。2022年,我应该选择哪一个?或选择哪种语言--Golang或Rust。 Golang和Rust是目前使用的最年轻的编程语言。Go于2009年在谷…
new 和 make 都是用来分配内存的 var a intfmt.Println(a)var b stringb "927"fmt.Println(b)//输出//0//927使用基本类型系统会默认分配内存 基本类型在创建的时候就有了默认值 var a *string*a "927"fmt.Println(a)var m map[string]intm["id&quo…
定义一个数组 var 数组变量名 [元素数量]元素类型 var a [3]int 定义一个int数组 长度为 3 fmt.Println(a)输出结果为 [0 0 0] 在声明数组时,如果没有对数组进行赋值 则会为该类型的默认值 int 类型为 0 string类型为 “” 在定义的时候赋值 var a [3]int{1,2,3} //长度为三其…
1.gopm 代替go 下载第三方依赖包 可以采用gopm从golang.org一些镜像网站上下载。 a). 安装gopm go get -u github.com/gpmgo/gopm b). 用gopm get -g代替 go getgopm get 不采用-g参数,会把依赖包下载.vendor目录下面; 采用-g 参数,可以把依赖…
控制平面 : 管理集群中的工作节点和 Pod 节点 : 一组工作机器,称为节点,每个集群至少有一个节点 pod :节点会托管pod ,pod是所有业务类型的基础,也是K8S管理的最小单位级,它是一个或…
Go 中异常处理
主要掌握 一下几个方面:
掌握error接口掌握defer延迟掌握panic及recover
error接口
error是指程序中出现不正常的情况,从而导致程序无法正常运行;
go中为错误的类型提供了简单的错误处理机制
go中error的源码:
// The error built-in interface type is t…
前言 Golang 中存在各种运行方式,如何正确的引用文件路径成为一个值得商议的问题 以 gin-blog 为例,当我们在项目根目录下,执行 go run main.go 时能够正常运行(go build也是正常的) [$ gin-blog]# go run main.go
[GI…
之前文章有介绍过 go test coverage 单测覆盖率 和Go test基础用法,今天这里主要介绍 go 单测中比较特殊的一种场景:包外测试。初次看到这个名字,我还以为就是单独创建一个新目录,所有的单测用例统一都汇总到这个目录下࿰…
一、配置 Go 1.18 开发环境
1. install golang by brew
$ brew install go
2. set Path for Go
# .zshrc
# go
export GOROOT/opt/homebrew/Cellar/go/1.18/libexec
export GOPATH$HOME/workspace/project/go
export PATH$PATH:$GOROOT/bin:$GOPATH/bin
export GOPROXYhttp…
包依赖管理的说明(上篇文章) 连接地址 创建目录 $ mkdir test
$ cd test初始化 go mod, 生成 go.mod 文件 // 初始化<项目目录>
test $ go mod init test
// 初始化指定依赖包
test $ go mod init example.com/m/v2下载依赖包(exceliz…
概述
Go 语言的 包依赖管理 一直都被大家所诟病,从最初的 GOPATH 到 GO VENDOR,再到最新的 GO Modules,走了不少的弯路。目前最主流的包依赖管理方式是使用官方推荐的 Go Modules,版本 Go v1.14,官方强烈推荐使用 Go …
map篇
在C语言时代,一个map函数可能长成下面这个样子
func mapF(f IntMapFunc, i ...int) []int {y : make([]int, len(i), cap(i))for j : range i {y[j] f(i[j])}return y
}func mapFInplace(f IntMapFunc, i ...int) []int {for j : range i {i[j] f(i[j])}r…
报错信息: 参考解决方案: 在这篇文章中参考如何设置环境变量: Windows环境golang程序开发 报错exec: gcc: executable file not found in %PATH%_灬倪先森_的博客-CSDN博客_windows golang gcc not found in path 解决 exec:"gcc&quo…
模拟并发事务处理: package main import ( "fmt" "math/rand" "time" ) type job struct { jobID int load int //seconds needed to finish the job } const jobCount int 20 const workerCount int …
Go DOC
Go Modules Reference
模块是Go管理依赖的方式。
本文档是Go模块系统的详细参考手册。有关创建Go项目的介绍,请参见如何编写Go代码。有关使用模块、将项目迁移到模块以及其他主题的信息,请参阅从使用Go模块开始的博客系列。
一、模块、包和版…
一、变量
1、基础
1)变量声明
Go语言引入了关键字var,而类型信息放在变量名之后
var a int // 默认值为02)变量初始化
在定义变量时,就给变量赋值,这种方式就是变量的初始化
var a int 10 //””符号࿰…
There is no float type. Looks like you want float64. You could also use float32 if you only need a single-precision floating point value. package mainimport "fmt" func main() { i : 5 f : float64(i) fmt.Printf("f is %f\n", f) }转载于:htt…
原文链接: Go 语言 context 都能做什么?
很多 Go 项目的源码,在读的过程中会发现一个很常见的参数 ctx,而且基本都是作为函数的第一个参数。
为什么要这么写呢?这个参数到底有什么用呢?带着这样的疑问&am…
无论使用哪种方式,都应该注意到,只有通过TxOrm执行的 SQL 才会被认为是在一个事务里面。
o : orm.NewOrm()
to, err : o.Begin()// Outside the txn
o.Insert(xxx)// Inside the txn
to.Insert(xxx)
to.commit()
变量
变量有三种声明方式
第一种:var 变量名 类型 值 var i int 10 第二种: var 变量名 值
var j 10第三种: 变量名 : 值,自动推导类型
name : "zjc" 一些特殊的情况:一次声明多个变量,…
一、连接多个服务器,用逗号隔开 如果在连接时候zk服务器宕机 To create a client session the application code must provide a connection string containing a comma separated list of host:port pairs, each corresponding to a ZooKeeper server (e.g. &…
A Tour of Go concurrency >> sync.Mutex https://tour.golang.org/concurrency/9 golang 里的 map 并不是 concurrency-safe 的,也就是说,当多个 goroutine 对同一个 map 进行操作时,有可能发生冲突。 教程中给出了一个例子࿰…
问题描述
下面是我的建表语句,在其中我并没有使用到外键,去关联三个表,但是我发现三个表中具有隐式的关联关系
create database library;
use library;
DROP TABLE IF EXISTS user;CREATE TABLE user(id bigint(20) NOT NULL AUTO_INCREMEN…
(1)func len(v Type) int 返回长度,取决于具体类型;字符串返回字节数;channel返回缓存元素的个数; (2)func cap(v Type) int 返回容量,取决于具体类型;切片返…
测并发时由于使用db时没有lock,当连接数超过postgres设定的最大值时报错too many clients,于是问了下老师,老师说用连接池,一开始打开固定个数的db,每次都用这些db,而且每个db用的时候要加锁 于是就开始想如…
总览
Go 专家编程 go mod indirect
在使用 Go module 过程中,随着引入的依赖增多,也许你会发现go.mod文件中部分依赖包后面会出现一个// indirect的标识。这个标识总是出现在require指令中,其中//与代码的行注释一样表示注释的开始…
入口函数与包初始化:搞清 Go 程序的执行次序
main.main 函数:Go 应用的入口函数
Go 语言中有一个特殊的函数:main 包中的 main 函数,也就是 main.main,它是所有 Go 可执行程序的用户层执行逻辑的入口函数。 Go 程序在…
首先安装单元测试包,go get github.com/smartystreets/goconvey/convey 源程序如下,定义了加减乘除4个函数 package test222import ( "errors")func Add(a, b int) int { return a b }func Subtract(a, b int) int { return a - b }func Mult…
2019独角兽企业重金招聘Python工程师标准>>> Time wont go back I wont turn back. 时光不会倒着走,我也不会再回头。 其实应该理解为是slice的坑导致。 这个问题其实是出现在引用类型( 此处是slice )上, 这个是 slice 的数据结构,它很简单&…
In this post I’m going to help you understand how Kafka stores its data. I’ve found understanding this useful when tuning Kafka’s performance and for context on what each broker configuration actually does. I was inspired by Kafka’s simplicity and used…
删除只有一个操作,delete。也是先找到再去删除。 可以删除单条记录,也可以删除多条记录。 var s Studentdb.Debug().Delete(&s, "age ?", 100)fmt.Println(s)[15.878ms] [rows:1] DELETE FROM student WHERE age 100var s Studentdb.De…
以下代码中使用errors.New()函数建立error。
package mainimport ("errors""fmt"
)func divide(x, y float64) (float64, error) {if y 0 {return 0.0, errors.New("no dividing by zero")}return x / y, nil
}func test(x, y float64) {defer…
目录 题目:辗转相除法(求最大公约数)思路分析:辗转相除法(也叫欧几里得算法)gcd(a,b) gcd(b,a mod b)复杂度:时间复杂度 O ( n l o g ( m a x ) ) O(nlog(max)) O(nlog(max))、空间复杂度 O (…
更多奇技淫巧欢迎订阅博客:https://fuckcloudnative.io前言在本篇文章中,我会对 Go 语言编程模式的一些基本技术和要点,这样可以让你更容易掌握 Go 语言编程。其中,主要包括,数组切片的一些小坑,还有接口编…
Gorm
1. 准备工作
首先进入终端下载我们需要的包(确保go和mysql安装完成,并设置了环境变量)
go get -u gorm.io/driver/mysql
go get -u gorm.io/gorm有两份官方文档有对 GORM 更详细的讲解。
创建 | GORM - The fantastic ORM library f…
构建模式:Go 是怎么解决包依赖管理问题的?
Go 项目的布局标准是什么?
首先,对于以生产可执行程序为目的的 Go 项目,它的典型项目结构分为五部分: 放在项目顶层的 Go Module 相关文件,包括 go.…
google-go-lang-idea-plugin 插件虽然好,但是官方的编译版总是更新很慢,所以需要自己编译,问了老外才知道怎么编译,编译方法如下:
I opened this project in IDEA Community 13 (or whatever the latest EAP is), th…
gpt:
要获取当前24点的时间戳,你可以使用 Go 标准库中的 time 包来实现。以下是一个示例函数,它可以获取当前日期的24点的时间戳:
go package main
import ( "fmt" "time" )
func getMidnightTimestamp() in…
list : make([]Item, 0) 和 var list []Item 都是用于创建一个切片(slice)的语法,但它们在 Go 中有一些区别。 list : make([]Item, 0): 这是一种使用 make 函数来创建切片的方式,其中 Item 是切片的元素类型。make 函…
🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…
案例场景: 现在要读取多个数据库,并对多个数据库中取到的值进行数据渲染,将存放数据的结果集成为result。 result make(map[string]interface{}) 但是由于某一个我们需要的数据,需要根据刚刚获取到的数据中的某一个值,…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
Go 语言,也被称为 Golang,是一门由Google开发的开源编程语言。自从2009年首次亮相以来,它在编程社区中崭露头角,并吸引了越来越多的开发者和组织。Go 以其高效的并发性、出色的性能和简单易懂的语法而闻名。在本文中,我…
函数说明http.ServeMux是 Go 语言标准库中的一个多路复用器(multiplexer)。它用于路由和处理 HTTP 请求,将请求分发到相应的处理器函数。http.HandleFunc是 Go 语言标准库中的一个函数,用于注册处理器函数来处理 HTTP 请求。它是对…
GOPROXYhttps://mirrors.aliyun.com/goproxy/
一致提示URL不能有点,给我整郁闷了,换了这个地址好了
但是一致提示zip的包问题,最后还是不行又换回七牛 NEWBEE!
[GIN-debug] Environment variable PORT is undefined. Using por…
if 是具有布尔条件的语句,如果该条件的计算结果为 true,它将执行代码块。如果条件计算结果为 false,它将执行备用 else 块。**在本教程中,我们将了解使用 if 语句的各种语法和方法。
if 语句语法
下面提供了该语句的语法
if co…
语法基础
注释
// 单行注释 /* xxxx */ 编译器忽略该区间,其间都被认为是注释内容。虽然Go支持,但很少使用,一般都用多行//
//包注释
package mainimport "fmt"/*
x int
y int
*/// x int
// y int 多行注释func main() {fmt.P…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
三、用go语言,考虑除法散列法的另一种版本,其中 h(k) k mod m,m 2 p − 1 2^p-1 2p−1,k为按基数 2 p 2^p 2p 表示的字符串。试证明:如果串可由串 y 通过其自身的字符置换排列导出,则x和y具有相同的散列值。给出一个…
go mod 是 Golang 的官方依赖管理工具,从 Go 1.11 版本开始引入。go mod 使用一种被称为模块(modules)的方式来管理依赖,每个模块都包含了一组 Golang 包。一个 Go 程序可以由多个模块组成,每个模块都可以有自己的 go.…
概述
Ring是一种循环链表结构,没有头尾,从任意一个节点出发都可以遍历整个链。其定义如下,Value表示当前节点的值:
type Ring struct {Value interface{}
}类型方法
New
Ring.New用于创建一个新的Ring,接收一个整…
文章目录 003、Longest Substring Without Repeating Characters个人解题官方解题扩展 003、Longest Substring Without Repeating Characters
无重复字符的最长子串 Given a string s, find the length of the longest substring without repeating characters. 给定一个字符…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
EasyJson是Go语言中对象序列化与反序列化的工具,类似Java中的fastjson和Jackson,能快速对对象进行序列化和反序列化,本次介绍一下使用方法。
版本信息:
go1.20.2 1,获取源码
# go get
go get -u github.com/mailru…
1.碰见如下报错,调试器没有打印变量信息
Delve is too old for Go version 1.21.2 (maximum supported version 1.19)
2. 解决办法
升级delve delve是go语言的debug工具。
go install github.com/go-delve/delve/cmd/dlvlatest报错 Get “https://proxy.golang.org/github…
1:使用validate 包验证: 安装包: go get github.com/go-playground/validator/v10
package controllerimport ("fmt""github.com/gin-gonic/gin""github.com/go-playground/validator/v10""net/http&quo…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
背景
break和continue是编程语言的标准语法,几乎在所有的语言都有类似的用法。
go语言及所有其他编程语言for循环或者其他循环
区别 for i : 0; i < 10; i {if i 5 {continue}fmt.Println(i)for j : 0; j < 3; j {fmt.Println(strconv.Itoa(j) "a&q…
在 Web 开发中,实时通信是一项非常重要的功能。通过实时通信,我们可以实现一些实时更新的功能,如实时聊天、实时数据更新、多人游戏等。而 WebSocket 是一种在 Web 开发中常用的实现实时通信的技术。本文将介绍如何使用 Golang 实现 WebSocke…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
一、用go语言,给出 TREE-INSERT 过程的一个递归版本。
文心一言,代码不能运行:
下面是用 Go 语言实现一个递归版本的 TREE-INSERT 过程的代码:
package main import "fmt" type TreeNode struct { Val int Lef…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
Go 泛型之泛型约束 文章目录 Go 泛型之泛型约束一、引入二、最宽松的约束:any三、支持比较操作的内置约束:comparable四、自定义约束五、类型集合(type set)六、简化版的约束形式七、约束的类型推断八、小结 一、引入
虽然泛型是…
一、环境安装
windows 下载安装版本就可以了,例如:
go1.20.2.windows-386.msi安装好后,环境变量自动会设置好,全局可以使用go命令
C:\Users\pangbb>go version
go version go1.20.2 windows/386配置goproxy,配置好goproxy 在…
指针的概念
先看一段代码的输出
package main
import "fmt"
func main(){ var age int 18fmt.Println("age的内存地址值是:",&age)//age的内存地址值是: 0xc000012090// 定义一个指针变量// *int 是一个指针类型,可以理解为指向int类型的…
指针
Go 拥有指针。指针保存了值的内存地址。
类型 *T 是指向 T 类型值的指针。其零值为 nil。
var p *int
& 操作符会生成一个指向其操作数的指针。
i : 42
p &i
* 操作符表示指针指向的底层值。
fmt.Println(*p) // 通过指针 p 读取 i
*p 21 // 通过…
Golang 2023.03 1. 两数之和 Two Sum
2. 两数相加 Add Two Numbers
3. 无重复字符的最长子串 Longest-substring-without-repeating-characters 4. 寻找两个正序数组的中位数 Median of two sorted arrays
5. 最长回文子串 Longest Palindromic Substring
6. Z字形变换 Zi…
现象
最近在新电脑安装go环境,发现 golang 包名如果有汉字就不能编译运行。
具体来讲,就是 go mod tidy 报错 ‘invalid char’ 但是,我在以前的电脑上运行 go mod tidy 没有问题
原因
我对比了 go sdk 版本,旧电脑用 go 1.13…
var (// ReallyCrash controls the behavior of HandleCrash and now defaults// true. Its still exposed so components can optionally set to false// to restore prior behavior.// 说ReallyCrash参数是暴露给组件的,开发者可以自行设置为false也可以按默认的t…
目录
138. 复制带随机指针的链表 Copy List with Random-pointer 🌟🌟
139. 单词拆分 Word Break 🌟🌟
140. 单词拆分 II Word Break II 🌟🌟🌟
🌟 每日一练刷题专栏 &…
前言 kratos protos 生成 pb.go 文件时,会出现引用其他 proto 文件报错 was not found or had errors,因找不到此文件而无法编译。 解决 首先我们先了解下 protoc 中 import 的两条规则: import 不允许使用相对路径;import 导入路…
文章目录gf gen dao设置参数可传可不传model作为结构体类型模型关联添加数据主程序如下:gomeGoods.MainImgs的定义:批量插入数据配置插件自动生成service总结一起学习有朋友问我能不能搞一个GoFrame技巧篇,让新手少踩坑的那种。今天他来了&am…
近期在Twitter上看到一个名为“Command Line Interface Guidelines”的站点[1],这个站点汇聚了帮助大家编写出更好命令行程序的哲学与指南。这份指南基于传统的Unix编程原则[2],又结合现代的情况进行了“与时俱进”的更新。之前我还真未就如何编写命令行…
1、AOI基本介绍
游戏的AOI(Area of Interest)算法应该算作游戏的基础核心了,许多逻辑都是因为AOI进出事件驱动的,许多网络同步数据也是因为AOI进出事件产生的。因此,良好的AOI算法和基于AOI算法的优化,是提高游戏性能的关键。
为…
目录
40. 组合总和 II Combination Sum II 🌟🌟
41. 缺失的第一个正数 First Missing Positive 🌟🌟🌟
42. 接雨水 Trapping Rain Water 🌟🌟🌟
🌟 每日一练刷题…
算术运算符: - * / % -- 注意: --这两个运算符不返回值,所以不能作为赋值或输出,例如下面的用法是非法的 var a int 3 fmt.Println(a) //syntax error: unexpected , expectingcomma or ) var b…
Do not communicate by sharing memory; instead, share memory by communicating. 通过通信来共享内存,而不是共享内存来通信 安全访问共享变量是并发编程的一个难点,在 Golang 语言中,倡导通过通信共享内存,实际上就是使用 chan…
golang的DockerfileFROM golang:latestMAINTAINER pan "pangmail.com"WORKDIR /go/src/studentapiCOPY . /go/src/studentapiRUN go build .EXPOSE 9090ENTRYPOINT ["./studentapi"] InstructionDescriptionFROM格式为 FROM <image> 或 FROM <ima…
我们将学习指针在 Go 中的工作原理,我们还将了解 Go 指针与其他语言(如 C 和 C)中的指针有何不同。
Go 中的指针学习起来既简单又有趣。一些 Go 编程任务使用指针更容易执行,而其他任务,例如按引用调用,如…
安装protobuf go get -u github.com/golang/protobuf/proto go get -u github.com/golang/protobuf/protoc-gen-go 此时会生成protoc-gen-go,protoc一般是获取已经编译好的可执行文件(https://github.com/google/protobuf/releases) linux需要…
开发四年只会写业务代码,分布式高并发都不会还做程序员? >>> Google Go 团队的成员 Richard L. Hudson (Rick) 近日在 Go 的官方博客和大家分享了他在2018年6月18日国际内存管理研讨会(ISMM)上发表的主题演讲稿。在过去的25年里,I…
Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下。 Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED0 GOOSlinux GOARCHamd64 go build main.go
CGO_ENABLED0 GOOSwi…
1.初始化项目: 1.初始化项目:go mod init
2.下载gin框架:go get -u github.com/gin-gonic/gin
3.引入:import "github.com/gin-gonic/gin"
注意点:
报错:$GOPATH/go.mod exists but should …
go install github.com/mattn/goremanlatest报错:
[rootlocalhost ~]# go install github.com/mattn/goremanlatest
go: github.com/mattn/goremanlatest: module github.com/mattn/goreman: Get "https://proxy.golang.org/github.com/mattn/goreman/v/list&…
golang 配置代理。 go: module github.com/gin-gonic/gin: Get “https://proxy.golang.org/github.com/gin-gonic/gin/v/list”: dial tcp 142.251.42.241:443: connectex: A connection attempt failed because the connected party did not properly respond after a period…
前言
在开发过程中,无论是前端还是后端,都经常需要对第三方服务发起HTTP请求获取数据,本文列出一些代码示例用于参考,主要是 GET 请求 和 POST 请求。
环境
Go 1.20 Windows 11
示例
1、GET请求,不带参数
packag…
0. Go语言书单 1. 文本注释 // 单行注释 /* */ 多行注释 2. 变量赋值 变量赋值 : 声明变量并赋值 3. 变量定义 var name string var age int var name "alex" var age 123 4. 变量类型转换 string to int int, err : strconv.Atoi(string) string to int64 int64,…
问题: 使用趣链产品BitXHub,在配置goduck环境时报错 packr : command not found,该报错原因是缺少packer包。 在这里插入图片描述packr包github网址: https://github.com/gobuffalo/packrpackr包的下载命令:$ go get …
validator库参数校验 web开发中,我们不可避免的对一些参数进行各种校验,比如长度限定,类型限定等等,以前做Java的时候,自己直接 if else就应付了,写的老长老长了,这显然不合理。 gin框架使用git…
文章目录 Go 语言特色Go 语言用途第一个 Go 程序Go 语言环境安装UNIX/Linux/Mac OS X, 和 FreeBSD 安装Windows 系统下安装安装测试 Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。 Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompso…
简介 结构体(Struct)是复合类型,可以封装属性和操作(即字段和方法)。 Go 中的结构体类似面向对象编程中的轻量级类,但 Go 中没有类的概念,所以结构体尤为重要。 创建 定义结构体的一般语法如下&…
go mock使用介绍
单元测试需要mock一些东西(比如,RPC的远程调用),这里介绍goMock的使用方式。
安装
需要安装两个东西 gomock的包 用来做mock代码库的。 仓库:github.com/golang/mock/gomock go get github.com/gol…
查询,官方的解释如下: // rune is an alias for int32 and is equivalent to int32 in all ways. It is
// used, by convention, to distinguish character values from integer values.//int32的别名,几乎在所有方面等同于int32
//它用来区分字符值和整…
为什么80%的码农都做不了架构师?>>> 先看看有哪些类型 Time 时间类型,包含了秒和纳秒以及Location Month type Month int 月份.定义了十二个月的常量 Weekday type Weekday int 周,定义了一周的七天 Duration type Duration int64 持续时间.定义了以下持…
package main
import "fmt"
import "os"
type point struct {x, y int
}
func main() {
//Go 为常规 Go 值的格式化设计提供了多种打印方式。例如,这里打印了 point 结构体的一个实例。p : point{1, 2}fmt.Printf("%v\n", p) // {1 2…
数组声明的格式是: var identifier [len]type 例如: var arr1 [5]int 在内存中的结构是: 对索引项为 i 的数组元素赋值可以这么操作:arr[i] value,所以数组是 可变的。 由于索引的存在,遍历数组的方法自然…
4.1.GO协程
go协程是由GO运行时管理的轻量级线程; go f(x,y,z) Go程在相同的地址空间中运行,因此在访问共享的内存时必须同步,syncbao提供了这种能力;
func main() {wg : sync.WaitGroup{}for i : 0; i < 3; i {i : iwg.Add(…
MessagePack简称msgpack,官方网站是http://msgpack.org/ ,代码可以在github上查看 https://github.com/msgpack。 官方介绍是“Extremely efficient object serialization library for cross-language communication.Its like JSON, but very fast and small.”&…
小蚂蚁说: 本文是根据蚂蚁金服 Service Mesh 布道师敖小剑在 Service Mesher社区进行的第一次 Meetup 上分享的《大规模微服务架构下的 Service Mesh 探索之路》现场演讲内容实录整理编辑而成,希望能给关注 Service Mesh 产品的朋友们带来帮助和了解。 讲…
转载:https://www.zhihu.com/question/20801814 可以看到,今年谷歌家的 Go 编程语言流行度有着惊人的上升趋势,其发展也是越来越好,因此本文整理了一些优秀的 Go 存储相关开源项目和库,一起分享,一起学习。…
文章目录 往期教程:Go Hello World 实例执行 Go 程序注意 往期教程:
Go 语言教程–介绍(一)
Go Hello World 实例
Go 语言的基础组成有以下几个部分:
包声明引入包函数变量语句 & 表达式注释 接下来让我们来看…
2019独角兽企业重金招聘Python工程师标准>>> 这是我本机开的一个单核1G内存的Hyper-V虚拟机,首先我们使用的语言和框架版本给大家看一下: rootkerisy:/home/zoujiaqing# go version
go version go1.5.1 linux/amd64
rootkerisy:/home/zoujiaq…
新提案
新的提案内容是希望增加一个新的变种语句,允许在 switch 语句中使用泛型时,能够进一步便捷的约束其类型参数。
例如:
switch type T {
case A1:
case A2, A3:...
}
复制代码
也就是 switch-type 语句的 T 类型可以是一个泛型的类型…
Go语言使用中遇到的错误
1、go: go.mod file not found in current directory or any parent directory.
先运行这一行代码:
go mod init name再运行你的 go get 命令就好了。
2、Failed to build the application: main.go:4:2: package generateproject/route…
文章目录 往期教程:数字类型浮点型其他数字类型 往期教程:
Go 语言教程–介绍(一)Go 语言教程–语言结构(二)Go 语言教程–语言结构(三)
在 Go 编程语言中,数据类型用于…
原文地址:http://arslan.io/ten-useful-techniques-in-go Here are my own best practices that Ive gathered from my personal experiences with dealing lots of Go code for the past years. I believe they all scale well. With scaling I mean:
Your appli…
1.查看集合show collections2.向集合中添加数据db.runoob.insertMany([{title:data1,url:https://blog.51cto.com/suyanzhu,description:this is data1,view:5000},{title:data2,url:https://blog.51cto.com/suyanzhu,description:this is data2,view:3650},{title:data3,url:h…
1、go的hello world package main
//申明开头,表示代码所属包,申明为main包,可以编译为二进制程序
import ("fmt"
)
//导入格式化包,如果引入了包,则必须要用,不然会报错,主要为提高效率,追求极致func main(…
这里填写标题1. Go 的测试覆盖率1.1. Go 的测试覆盖率1.2. 查看结果1.2.1. 保存收集的统计信息的文件1.3. 参考资料1. Go 的测试覆盖率
测试覆盖率是一个术语, 用于统计通过运行程序包的测试多少代码得到执行。 如果执行测试套件导致 80%的语句得到了运行, 则测试覆…
最近学习了golang(go语言),其中大部分是和C相似的,记录一下不同的地方,需要注意
1.go的左花括号“{”不能单独放在一行 出错代码:
package main
import "fmt"
func main()
{ //error, cant have the opening brace on a separate linefmt.Println("hello t…
这里填写标题1. Custom DNS resolver for the default HTTP client in Go1. Custom DNS resolver for the default HTTP client in Go
The default HTTP client in Go uses the default DNS resolver available on the machine. There are some cases where you might want to…
Sublime Text3为Golang增加自动运行功能 参考:https://my.oschina.net/kyo153/blog/158393 Tools-> Build System -> New Build System <!-- lang: shell --> "shell_cmd": "d:/Dev/Go/bin/go run $file" http://www.sublimetext.c…
What you are wasting today is tomorrow for those who died yesterday; what you hate now is the future you can not go back. 你所浪费的今天是昨天死去的人奢望的明天; 你所厌恶的现在是未来的你回不去的曾经。 Go是静态类型语言。每个变量都拥有一个静态类型…
Go语言学习笔记这一堆主要是《Go语言编程》(人民邮电出版社)的读书笔记。中间会穿插一些零碎的点,比如源码学习之类的。大概就是这样吧。 1. 顺序编程 1.1 变量 变量的声明: var 变量名 类型 var v1 int 也可以把若干变量的声明用…
这里填写标题1. Go Unit Testing at Compass1.1. The Basics of Go Unit Testing1.2. Handling Many Test Cases with Test Tables1.2.1. Testify for Enhanced Assertions and Mocking1.2.2. Separate Layers for Logic Isolation and Testing1.2.3. Controlling Dependencies…
go 安装/版本切换1. go 安装/版本切换1.1. 安装 go1.171.2. brew 安装1.2.1. brew link unlink1.3. 版本切换1.3.1. bash 环境切换1. go 安装/版本切换
1.1. 安装 go1.17
今天发现一个新方法可以在同一台机器上安装 go 的不同版本:
$ go get golang.org/dl/go1.17
$ go1.17 …
下载包
go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
go get -u github.com/golang/protobuf/protoc-gen-go
go get -u github.com/gogo/protobuf/gogoproto
go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-swaggerproto文件
…
1. 打印变量数据类型
package mainimport "fmt"func main() {penniesPerText : 2.0fmt.Printf("The type of penniesPerText is %T\n", penniesPerText)
}输出为: The type of penniesPerText is float64
2. 同时给多个变量赋值
package mai…
功能函数
// queue.gopackage queue// Queue : A FIFO queue.
type Queue []int// Push : Pushes the element into the queue.
// e.g. q.Push(123)
func (q *Queue) Push(v int) {*q append(*q, v)
}// Pop : Pops element from head.
func (q *Queue) Pop() int {head …
题目来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/chuan-di-xin-xi
小朋友 A 在和 ta 的小伙伴们玩传信息游戏,游戏规则如下:
有 n 名玩家,所有玩家编号分别为 0 ~…
目前,GoLand、VSCode 这些 IDE 都很优秀,但它们都是 Windows 系统下的 IDE。在 Linux 系统下我们可以选择将 Vim 配置成 Go IDE。熟练 Vim IDE 操作之后,开发效率不输 GoLand 和 VSCode。有多种方法可以配置一个 Vim IDE,这里我选…
golang大厂面试
滴滴
写个二分查找
以下是一个简单的二分查找算法的 Go 语言实现:
package mainimport "fmt"// 二分查找函数
func binarySearch(arr []int, target int) int {left, right : 0, len(arr)-1for left < right {mid : left (right-…
Go语言学习笔记二: 变量 今天又学了一招如何查看go的版本的命令:go version。另外上一个笔记中的代码还可以使用go run hello.go来运行,只是这种方式不会生成exe文件。 定义变量 使用var关键字来定义变量。例如: var x int 100; …
问题
在使用 go 语言编译时,需要安装一些包,这些包在使用 go build 或 go install 时,go 自己去下载,但是会有网络不通导致无法下载的问题
解决
配置 go 的环境变量
go env -w GOPROXYhttps://goproxy.io,direct
目录 题目:用4KB内存寻找重复元素思路分析:使用位存储如何存储这32000个整数?每个整数对应在位图中的存储状态举例如何判断是重复的?具体的步骤 复杂度:时间复杂度 O ( n ) O(n) O(n)、空间复杂度 O ( 1 ) O(1) O(1)Go…
go设计者更偏向于C的error处理方式, 快速失败是更简单高效的
我们可以利用error接口和多返回值来实现异常传递
error可以利用变量来复用 等价判断
var outOfRangeError errors.New("number out of range")
var unknownError errors.New("unknown type erro…
1. Go语言的下载 Golang官网:All releases - The Go Programming Language Golang中文网:Go下载 - Go语言中文网 - Golang中文社区 两个网站打开的内容只有语言不同而已,网站上清晰的标注了不同操作系统需要对应安装哪个版本,其中…
删除只有一个操作,delete。也是先找到再去删除。 可以删除单条记录,也可以删除多条记录。 var s Studentdb.Debug().Delete(&s, "age ?", 100)fmt.Println(s)[15.878ms] [rows:1] DELETE FROM student WHERE age 100var s Studentdb.De…
OpenPGP 号称是世界上使用最广泛的邮件加密标准. OpenPGP is the most widely used email encryption standard in the world. ( http://www.openpgp.org/ )这篇例子介绍如何使用这个标准进行文件的加密解密 (https://www.bouncycastle.org/latest_releases.html, 需要下载: bc…
文章目录 单元测试基准测试 单元测试
以一个加法函数为例,对其进行单元测试。
首先编写add.go文件:
//add.go
package mainfunc add(a, b int) int {return a b
}其次编写add_test.go文件,在go语言中,测试文件均已_test结尾&a…
垃圾回收 垃圾回收版本1.3之前标记-清除(mark and sweep)算法标记-清除(mark and sweep)的缺点 版本1.5的三色并发标记法没有STW的三色标记法屏障机制强-弱 三色不等式插入屏障删除屏障 版本1.8的混合写屏障(hybrid wr…
Go 官网:https://go.dev/dl/ Go 语言中文网:https://studygolang.com/dl 下载 Go 的语言包 进入官方网站 Go 官网 或 Go 语言中文网: 选择下载对应操作系统的安装包: 等待下载完成:
安装 Go 的语言包 双击运行上…
目录标题 一、Writing files 写入文件1. Writing string to a file 写入字符串2. Writing bytes to a file 写入字节3. Writing strings line by line to a file 一行一行写入4. Appending to a file 添加内容5. Writing to file concurrently 并发写入文件 二、iota 常量生成器…
Go In OOp 一、 Go是面向对象的吗?二、Structs Instead of Classes 结构体 - OOP in Go三、 Composition Instead of Inheritance 组合嵌套 - OOP in Go1.Composition by embedding structs2. Embedding slice of structs 四、Polymorphism 多态 - OOP in Go1. Polymorphism u…
在 Docker 容器中使用 Go 获取包时超时,可能是由于网络问题或者是由于特定的网络限制。以下是一些建议和解决方法: 更改下载源: Go 默认使用 proxy.golang.org 作为模块代理。在某些地区或网络环境中,这可能会导致超时。你可以尝试更改 Go 的…
type A struct {CreateTime *time.Time gorm:"create_time"
}
1、定义数据库表映射结构体如上,create_time字段在表里面是datetime格式。
2、如果CreateTime不给值,在存库时,create_time字段的值为NULL。
3、赋值时,…
GoCron 是一个开源的 Go 语言定时任务框架,它允许你在 Go 代码中轻松地创建和管理定时任务。你可以使用 GoCron 来执行周期性任务、定时任务等,它提供了简单的 API 和丰富的功能,以帮助你管理定时任务。 要开始使用 GoCron,你需要…
文章目录 面向对象编程(上)1.问题与解决思路2.结构体1》Golang语言面向对象编程说明2》结构体与结构体变量(实例/对象)的关系的示意图3》入门案例(using struct to solve the problem of cat growing) 3.结构体的具体应用4.创建结构体变量和访问结构体字段5.struct类型的内存分…
使用github上的一個庫
1.安裝庫
go get github.com/prometheus/client_golang
2.導入
在import中導入,記得要在go.mod中更新一下 ------------------------------------------------------------------------------------
Address: "http://xx.xx.xx:9090…
一、前言
搜索相关知识后续内容等上班后再继续,新年新气象,从今天开始学习一下Go语言,第一次听说这门语言还是2016年的时候,然后2018年买了一本书 Go In Action,然后就没有然后了, 转眼这么多年过去了&am…
最近在docker中运行了一个ubuntu20的系统,在上面运行golang程序,使用go mod tidy后报错:
tls: failed to verify certificate: x509: certificate signed by unknown authority
如:
go: finding module for package google.gol…
多路复用与健康检查
参考grpc-health-probe 【grpc健康检查探针】
The grpc_health_probe utility allows you to query health of gRPC services that expose service their status through the gRPC Health Checking Protocol.grpc_health_probe is meant to be used for h…
大家好,我是木川 Go GMP模型 是 Go语言并发性能的关键组成部分,它允许轻松创建大量的 Goroutines,设计思想包括并行性、线程复用以及抢占调度。 Go 1.1 版本前采用的是 GM 模型,存在一些问题,后面增加了 P 组件&#x…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
文章目录 time包跨时区时间戳时间间隔时间操作addSubEqualBeforeAfter 定时器时间格式化解析字符串格式的时间 time包
时间和日期是我们编程中经常会用到的,本文主要介绍了 Go 语言内置的 time 包的基本用法。
time 包提供了一些关于时间显示和测量用的函数。time…
上一篇,我们已经用GoLand开发了第一个程序Hello Kitty,接下去,我们将完成Go程序的打包发布。
执行:
go build -x main.gogo build 和 go run 在编译过程中其实是差不多的,不同之处是 go build 会生成编译好二进制文件并删掉编译…
go语言中 ,rune其实是一种int32的数据类型的别名。
// rune is an alias for int32 and is equivalent to int32 in all ways. It is
// used, by convention, to distinguish character values from integer values.
type rune int32rune通常用于处理字符串中的单…
第一个bug
itcastitcast:/home/jian/share/src/go-test/homeweb-client$ go mod tidy
go: finding module for package github.com/micro/go-grpc
go: found github.com/micro/go-grpc in github.com/micro/go-grpc v1.0.1
go: homeweb-client/handler importsgithub.com/micr…
1 go mod tidy
go mod tidy默认情况下在拉取go的依赖包时都是走的https协议,但是go的私有git仓库都是只支持http协议,所以当你的go.mod里面有私有仓库的依赖时,在使用go mod tidy拉取依赖时,一定会遇到这么个问题,就是…
通过集成开发工具Goland创建项目 整合Gin框架,在终端中输入如下命令:
go get -u github.com/gin-gonic/gin 整合Gorm,安装命令如下:
go get -u gorm.io/gorm 安装sqlserver驱动,安装命令如下:
go get -u…
Go 是一种非常流行的编程语言,以下是 Go 必知的 10 个命令:
1,go build: 将一个或多个 Go 源文件编译成可执行文件或动态链接库。
2,go run: 直接运行一个或多个 Go 源文件。
3,go fmt: 格式化 Go 源代码。
4&…
package main
import "fmt"func calcFunc(x int, y int) int {return x y
}func main() {// defer语句的执行顺序是,从右到左,逆序执行deferDemo()// deferDemo1函数demo1 : deferDemo1()fmt.Println(demo1) // 0// deferDemo2函数demo2 : deferDemo2()f…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
介绍 在 Go 语言的 Web 开发中,我们经常会遇到参数验证的需求。其中,binding:"required" 和 validate:"required" 是两个常见的标签,但它们具有不同的上下文和用途。本文将深入解析这两个标签,帮助开发者更好…
文章目录 Go 语言接口例子空接口空接口的定义空接口的应用空接口作为函数的参数空接口作为map的值 类型断言接口值 类型断言例子001类型断言例子002 Go 语言接口
接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
在go中我们可以通过range来遍历channel,但是如果channel没有close会陷入deadlock状态
var c chan int
func main(){c make(chan int,10)go func () {for i:0;i<10;i{c<-ifmt.Println(i)}close(c) //可自行注释掉调试}()for i : range c{fmt.Println("…
map在内存中总是会增长;它不会收缩。因此,如果map导致了一些内存问题,你可以尝试不同的选项,比如强制 Go 重新创建map或使用指针。 在 Go 中使用map时,我们需要了解map增长和收缩的一些重要特性。让我们深入探讨这一点…
ECDH
X25519是一种快速密钥交换的算法,使用GO语言实现其密钥交换流程。
Go语言版本1.20,之前版本的一些方法已经被弃用
[rootnode2 client]# go version
go version go1.20.6 linux/amd64client.go
package mainimport ("bytes""enco…
环境说明
CentOS Linux release 7.2 (Final)
go version go1.16.3 linux/amd64
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-80.el7使用gdb查看程序入口
编写一个简单的go程序
// main.go
package mainfunc main() {print("Hello world")
}
编译go …
Go 语言类型转换 将整型转换为浮点型:
var a int 10
var b float64 float64(a)将字符串变量 str 转换为整型变量 num
var str string "10"
var num int
num, _ strconv.Atoi(str)注意,strconv.Atoi 函数返回两个值,第一个是转…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
版本说明
Go 1.21
官方文档
Go 语言官方文档详细阐述了 Go 语言编译器的具体执行过程,Go1.21 版本可以看这个:https://github.com/golang/go/tree/release-branch.go1.21/src/cmd/compile
大致过程如下: 解析 (cmd/compile/internal/synt…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
文章目录 1. Golang 包管理1.1 GOPATH 包管理1.2 Go vendor 包管理1.3 Go modules包管理2. Go Modules 应用实践2.1 Go modules关键信息2.1.1 go mod 命令行2.1.2 配置代理服务2.2 创建项目2.3 获取依赖包2.4 运行项目1. Golang 包管理
1.1 GOPATH 包管理 第一阶段: Golang初…
在Go语言中,go.mod文件是Go模块的管理文件,用于跟踪和管理项目的依赖关系。go.sum 文件是 Go 语言模块的另一个关键文件,它记录了项目依赖的确切版本以及相应的哈希值。如果你得到了一个包含go.mod和go.sum文件的Go代码,ÿ…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
变量声明: 变量声明:在Go中,变量必须先声明然后再使用。声明变量使用 var 关键字,后面跟着变量名和类型,如下所示: var age int这行代码声明了一个名为 age 的整数变量。 变量初始化:您可以在声…
文章目录 初始化项目加密一步一步编写程序另一个参数--加密方式关于StandardClaims 解密解析出来的怎么用关于`MapClaims`上面使用结构体的全代码实战项目关于验证这个项目的前端初始化项目 自然第一步是暗转jwt-go的依赖啦 #go get github.com/golang-jwt/jwt/v5
go get githu…
var post *models.Post
res : postDao.SavePost(post)var post models.Post
res : postDao.SavePost(&post)在1中将models.Pos声明为指针但是并没有为其分配内存空间,这意味着它的值为 nil,并且没有指向有效的 models.Post 对象。
func Test1(t *te…
go module本地包导入 本文目录 go module本地包导入启用go mod主项目工作目录本地module目录发布和使用模块 golang 1.11之后加入了go mod来替代GOPATH
官方文档参考:https://golang.google.cn/doc/tutorial/call-module-code
启用go mod 开启 Go modules # 临时开…
1、golang 中 make 和 new 的区别?(基本必问)
1.作用变量类型不同,new可以给任意类型分配
内存,make给slice,map,channel分配内存;
2.返回类型不一样,new返回指向变量的指针&#x…
Go常用第三方库 命令 解释 备注 go get -u github.com/go-sql-driver/mysql Mysql驱动包 go get -u github.com/xormplus/xorm Xorm数据库框架 需要mysql驱动包 go get -u gorm.io/gorm Gorm数据库框架 需要mysql驱动包 go get gopkg.in/gomail.v2 发送邮箱验…
本文对 ini 文件进行解析。 概述
某Delphi项目需要做一些额外的配置,因为原本的配置文件是ini格式的,为不影响已有代码,而且delphi读取解析ini比较简单,考虑到兼容性,最终还是新建单独的ini配置文件并解析。为了对比数…
什么是别名类型
我们可以用关键字 type 声明自定义的各种类型,类似:
type People struct {name stringage int
}当然了,这些类型必须在 Go 语言基本类型和高级类型的范畴之内。
在它们当中,有一种被叫做 ”别名类型” 的类型。…
go 之所以在高并发环境下表现优异,除了咱们都知道的 GMP 模型,其实 go 的内存布局和分配机制也起到了不少作用。
1. 分配内存三大组件
go 分配内存的过程,主要由三大组件所管理,级别从上到下分别是:
mheap
go 在程…
文章目录 环境背景分析参考 环境
RHEL 9.3Docker Community 24.0.7
背景
在Docker官方文档 https://docs.docker.com/engine/reference/builder/#add 里有这么一段话: When adding files or directories that contain special characters (such as [ and ]), you…
ent库的field.Time()语句,会默认生成的是一个TIMESTAMP类型的列。但又该如何生成DATETIME类型格式呢?
其实这个问题在官方文档的FAQ中已经给出了答复,这里搬运一下,方便查阅。 Time fields use the MySQL TIMESTAMP type in the…
postgresql.conf与postgresql.auto.conf的区别 postgresql.auto.conf的优先级高于postgresql.conf,如果一个参数同时存在postgresql.auto.conf和postgresql.conf里面,系统会先读postgresql.auto.conf的参数配置。 使用alter system set修改的是postgres…
【报错内容】
Sorry, can not exec into mysql: Error 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ...
【原因】
sql.Exec 在大多数情况下只能执行单条SQL语句…
go并发写map[string]interface{}数据的时候,报错:panic: assignment to entry in nil map
多个key同时操作一个map时,如:
test[key1] 1
test[key2] "a"
test[key3] true
就会遇到并发nil值报错,什么…
本文是对 validate tag not working in ShouldBindWith 的回答。
有人提了这么一个问题:
package mainimport ("log""net/http""github.com/gin-gonic/gin""github.com/gin-gonic/gin/binding"
)// MyStruct ..
type MyS…
技术阅读周刊,每周更新。 历史更新 20231215:第十期20231122:第十一期20231129:第十二期20240105:第十三期:一些提高生产力的终端命令 What We Got Right, What We Got Wrong URL: https://commandcenter.b…
在Go编程中,数据结构的选择对解决问题至关重要。本文将探讨如何在 GO 中实现 set 和 bitset 两种数据结构,以及它们在Go中的应用场景。
Go 的数据结构
Go 内置的数据结构并不多。工作中,我们最常用的两种数据结构分别是 slice 和 map&#…
一、问题场景
在idea中配置了Go编程环境,可以运行Go程序,但是无法debug,报错error layerdebugger could not patch runtime.mallogc: no type entry found, use ‘types’ for a list of valid types
二、解决方案
这是由于idea中使用的d…
前言
大家好,这里是白泽。 《Go语言的100个错误以及如何避免》 是最近朋友推荐我阅读的书籍,我初步浏览之后,大为惊喜。就像这书中第一章的标题说到的:“Go: Simple to learn but hard to master”,整本书通过分析100…
color
color 是一个可以让你输出带颜色文本的库。
安装
go get github.com/fatih/color示例
输出到控制台
// 这会直接输出到控制台
color.Cyan("Prints text in cyan.")// 每个调用末尾会自动加上换行
color.Blue("Prints %s in blue.", "text&…
Web 系统搭建第一步,选择技术框架,完成 Hello World。 小玖用的 Go 版本是 1.21.6 介绍项目的技术选型个结构,不包括代码。
全文链接:https://blog.nineya.com/archives/149.html
一、技术框架选择
Web 框架: githu…
fmt.Scan系列
fmt.Scan函数定义如下:
// Scan scans text read from standard input, storing successive space-separated values into successive arguments.
// Newlines count as space.
// It returns the number of items successfully scanned.
// If tha…
go语言中有一句名言: 不要通过共享内存来通信,而应该通过通信来共享内存。 channel实现了协程间的互相通信。 目录 一、channel声明
二、向channel发送数据
三、从channel读取数据
1. i, ok : <-c
2. for i : range c(常用)…
Go 入门笔记函数计算函数执行实际闭包(Closure)可变参数(变参函数)defer(延迟执行语句)指针new 函数iota 常量协程通道接口类型断言sort.Interface接口处理运行时错误宕机(panic)——…
sqlx is a library which provides a set of extensions on gos standard database/sql library. sqlx support some db: mysql, postgresql, oracle, sqlite ... https://github.com/jmoiron/sqlx 示例代码: 该库目前只对查询进行了深度封装,对于更新和…
我们在学校Go语言的泛型时会经常使用 interface{} / any来替代所有的数据类型,除此之外我们还可以使用comparable 关键字来指代golang中所有可以用!或者来进行比较的元素。我们可以先查看comparable 的源码。
// comparable is an interface that is implemented b…
1.数据表ER图2.数据表相关(1).商品分类表相关1).数据表-- ----------------------------
-- Table structure for goods_cate 商品分类表
-- ----------------------------
DROP TABLE IF EXISTS goods_cate;
CREATE TABLE goods_cate (id int(0) NOT NULL AUTO_INCREMENT,tit…
🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…
跨行匹配
使用 (?s) 来启用多行模式
package mainimport ("fmt""regexp"
)func main() {data : "This is the first line. \nAnd this is the second line."// fmt.Println(data)// re : regexp.MustCompile(line.*And)re : regexp.MustCompi…
go 语言程序设计第3章–基础数据类型
Go 的数据类型分四大类:基础类型(basic type)、聚和类型(aggregate type)、引用类型(reference type)和接口类型(interface type).…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
写在前面的话:idea如何配置golang,自行百度 问题1:通过idea的terminal执行go test报错 ✘ xxxxxmacdeMacBook-Pro-3 /Volumes/mac/.../LearnGoWithTests/hello go test
go: go.mod file not found in current directory or any parent …
Go 常见报错 - VsCode运行go:go.mod file not found 问题描述: 在当前目录或任何父目录中找不到go.mod文件
解决方法: go 的环境配置问题。与 golang 的包管理有关 如果你是 Windows 系统,打开dos界面,输入以下命…
Context
在Go语言圈子中流行着一句话: Never start a goroutine without knowing how it will stop。 翻译:如果你不知道协程如何退出,就不要使用它。
在创建协程时,我们可能还会再创建一些别的子协程,那么这些协程的…
Golang爬虫技术
Golang爬虫简介使用golang net/http库实现第一个爬虫Golang爬虫解析页面Golang爬虫将内容保存到本地文件Golang爬虫将内容保存到数据库(xorm)Golang爬虫库goquery简介golang爬虫库goquery api Documentgolang爬虫库goquery api 选择器Golang爬虫库goquery api …
1. 数组(array)(OK)
数组数组的概念数组是具有固定长度且拥有零个或多个相同数据类型元素的序列 i. 元素的数据类型相同 ii. 长度固定的序列 iii. 零个或多个元素的序列 与 slice 对比 由于数组的长度固定,所以在 G…
Go 语言自身不提供传统意义上的线程池(thread pool)概念,因为它有一套自己的并发模型,基于 goroutines 和 channels。goroutine 是 Go 语言的轻量级线程,调度由 Go 运行时管理,不需要像操作系统线程那样显式…
本文通过一个实现加减乘除运算的小程序来介绍go函数的使用,以及使用函数的注意事项,并引出了对包的了解和使用。 实现加减乘除运算
传统方法实现:
var n1 float64 1.2
var n2 float64 2.1
var opt byte
var res float64switch opt {cas…
文章目录一:数组二:map集合三:包四:结构体一:数组
1.命名 var arrAge [5]int{1,2,3,4,5} var arrAge […]int{1,2,4,5,6} var arrAge [5]string{3:“sfd”,5:“asdf”} 2.传递 通过传递数组的指针 和 使用数组的切片…
文章目录 前言安装 Go 语言编译器 Goland运行 Go 程序补充 前言
本系列教程,目的是帮助一个有其他编程基础的 Go 语言小白快速入门 Go 语言,而非启发式学习。每篇幅保证不说废话,尽可能精炼总结,为上手后续的 Go 相关项目打下基础…
GO 的指针 文章目录GO 的指针一、GO中代表指标的几种东西(2)uintptr 类型(3)Go语言标准库中的unsafe包:unsafe#Pointer二、GO语言中哪些值是不可以寻址的(1)常量的值(2)基…
目录字符串数组数组初始化指针复制切片基本操作resliceappendcopy字典deletemap是引用类型并发操作字符串
字符串是不可变字节(byte)序列,其本身是一个复合结构
type stringStruct struct{str unsafe.Pointerlen int
}头部指针指向字节数组…
华为 Od 必看系列 华为 OD 机试 全流程解析+经验分享,题型分享,防作弊指南华为 od 机试,独家整理 已参加机试人员的实战技巧华为 od 2023 | 什么是华为 od,od 薪资待遇,od 机试题清单华为 OD 机试真题大全,用 Python 解华为机试题 | 机试宝典使用说明
如果想要在华为 od 机…
2023-03-21:音视频解混合(demuxer)为MP3和H264,用go语言编写。
答案2023-03-21:
步骤1:安装github.com/moonfdd/ffmpeg-go
go get -u github.com/moonfdd/ffmpeg-go步骤2:导入所需的库
接下…
VS code 配置go语言开发环境1.下载go安装包1.1go语言安装包1.2安装步骤1.3 检查go环境1.dos界面输入 go version2.vs code配置go语言2.1 安装go语言开发扩展2.2安装go开发工具包1.配置国内代理地址2.安装go开发工具包3.配置windows系统环境1.下载go安装包
1.1go语言安装包
官…
文章目录命令引入greeting.aar和使用android中使用Flutter2gopluginPlugin.kt参考文档命令 mkdir demo cd demo go mod init demo 编写greeting.go go env -w GOPROXYhttps://goproxy.cn go install golang.org/x/mobile/cmd/gomobilelatest gomobile init go get golang.org/x…
3 程序流程控制-函数、包【Go语言教程】
一、 程序流程控制 顺序控制分支控制switch分支for循环 Go 语言没有 while 和 do…while 语法,这一点需要同学们注意一下,如果我们需要使用类似其它语言(比如 java / c 的 while 和 do…while ),可以…
文章目录 1.下面的代码输出什么?2.下面的代码输出什么?3.下面的代码输出什么?4.下面的代码输出什么?5.下面代码有什么问题吗?6.下面代码输出什么,请说明。 1.下面的代码输出什么?
type T struc…
初步介绍:
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源&am…
共有 n 位员工,每位员工都有一个从 0 到 n - 1 的唯一 id 。
给你一个二维整数数组 logs ,其中 logs[i] [idi, leaveTimei] :
idi 是处理第 i 个任务的员工的 id ,且 leaveTimei 是员工完成第 i 个任务的时刻。所有 leaveTimei…
切片(slice) 因为数组的长度是不可变的 应用起来不够灵活 所以衍生出来切片 切片的长度是可变的 切片声明 var s []int{}创建一个长度为0的切片 var s []int{1,2,3}创建一个 长度为3的切片 var s make([]int,10)使用make创建一个长度为10的切片 va…
数组: 声明: var variable_name [SIZE]variable_type 注意:数组长度是固定不能改变的 一维数组举例: var arr1 [10]int arr1[0] 10 var arr2 [5]int{1,2,3,4,5} var arr3 [...]int{1,2,3,4,5,6} fmt.P…
High Performance Object Storage for AI 译文:MinIO是一个基于Go实现的高性能、兼容S3协议的对象存储 文档
项目地址:https://github.com/minio/minio官网地址:https://min.io/文档地址:https://docs.min.io/Software Developme…
在 Go Casbin 中使用 MySQL 作为策略存储是一种常见的方式。下面是一个简单的示例,演示了如何在 Go Casbin 中使用 MySQL。
首先,我们需要导入 MySQL 驱动程序和 Casbin:
import ("github.com/casbin/casbin/v2"_ "github.c…
Go Casbin 入门
Go Casbin 是一个强大的、高效的访问控制框架,可以处理基于角色的访问控制 (RBAC)、访问控制列表 (ACL)、节点属性访问控制 (ABAC) 和多租户数据的访问控制等各种访问控制模型。它是 Casbin 的 Go 语言实现版本,可以方便地与 Go 应用程序…
文章目录1. testing2. 总结1. testing
package cal//一个被测试函数
func addUpper(n int) int {res : 0for i : 1; i < n - 1; i {res i}return res
}//求两个数的查
func getSub(n1 int, n2 int) int {return n1 - n2
}package cal
import ("fmt""testi…
前言
windows defender是越来越难关闭了,之前的直接修改注册表关闭已经不可以用,开机之后注册表项会被删除
参考官方
https://support.microsoft.com/zh-cn/windows/%E7%94%A8-%E7%AF%A1%E6%94%B9%E4%BF%9D%E6%8A%A4-%E9%98%BB%E6%AD%A2%E6%9B%B4%E6%…
mariadb10忘记密码版本参考文章版本 service mysql stop
mysqld_safe --skip-grant-tables --skip-networkingmysql -u root
use mysql;
update user set authentication_stringPASSWORD("xxxxxx") where userroot;
flush privileges;
quitservice mysql restart参考…
Go语言中new和make是内建的两个函数,主要用来创建分配类型内存。在我们定义生成变量的时候,可能会觉得有点迷惑,其实他们的规则很简单,下面我们就通过一些示例说明他们的区别和使用。
变量的声明
var i int
var s string变量的声…
Go routine 协程
协程和通道,是 Go 语言并发的基础。谈并发,就绕不开线程,操作系统会为 deamon 服务创建进程,进程可以看作一个服务的工作空间,它包含了服务运行所需的所有资源(PCB控制块)&…
译文:https://github.com/wuYin/blog/blob/master/50-shades-of-golang-traps-gotchas-mistakes.md 原文:50 Shades of Go: Traps, Gotchas, and Common Mistakes,翻译已获作者 kcqon 授权。 不久前发现在知乎这篇质量很高的文章,…
今天在做一个项目的时候,发现了这样一个问题,为了让大家看得更直接明了,我直接放代码: public void InsertObjectToList(){ List<NewsProtetype> list new List<NewsProtetype>(); NewsProtetype info new NewsProt…
go mod 和 go path 都是go的包管理工具
go path
缺点
使用go path问题:
代码开发必须在go path src目录下,不然,就有问题。依赖手动管理依赖包没有版本可言
go mod
go modules 是 golang 1.11 新加的特性。
go path 存在诸多问题&…
最近多次出现同事误用指针导致系统bug,所以这次聊一下Go的值与指针,大家尽量避免写出错误代码。
错误示例
让我们先看一个错误代码示例:
//错误示例
func ErrorShow() {fmt.Println("------------------错误示例")var a, b stri…
转载自:http://blog.csdn.net/songbohr/article/details/13292261 1.Learning Go 《学习Go语言》 http://www.miek.nl/projects/learninggo/中文版http://mikespook.com/learning-go/2.Go by ExampleGo is an open source programming language designed for buildi…
未提供https
go env -w GOINSECUREgitdemo.com鉴权问题
get "gitlab.com/xxx/zz": found meta tag get.metaImport{Prefix:"gitlab.com/xxx/zz", VCS:"git", RepoRoot:"https://gitlab.com/xxx/zz.git"} at //gitlab.com/xxx/zz?go…
不支持自动转换
在Golang中不支持对不同类型的变量进行自动转换
需要显示转换如:
var i float32 10.1var n int32 int32(i)Go中类型转换不会引起类型的改变,只可能改变值。
就如这里i没有真的变成int32,需要一个新的int32来接收转换后的…
My $GOPATH is "/Users/peter/goworkspace"Golang 版本是: go version go1.6 darwin/amd64在这个workspace下我有多个不同golang项目,目录结构类似于 /goworkspace ---/bin ---/pkg ---/src ---/project1---package1 ---file1.go ---file2…
模块一:Go语言特性
统一思想-12 factors I. 基准代码 一份基准代码,多份部署 II. 依赖 显式声明依赖关系 III. 配置 在环境中存储配置 IV. 后端服务 把后端服务当作附加资源 V. 构建,发布,运行 严格分离构建和运行 VI.…
目录
326. 3的幂 Power of Three 🌟
342. 4的幂 Power of Four 🌟
相关链接: 231. 2的幂 Power of Two 🌟
🌟 每日一练刷题专栏 🌟
Rust每日一练 专栏
Golang每日一练 专栏
Python每日一练 专栏
…
GO Web 编程:http://www.kancloud.cn/kancloud/web-application-with-golang/44105 我的golang工程:https://github.com/javahongxi/go.web.red.git uber zap test Go代码 package main import ( "go.uber.org/zap" "time&…
GO语言在github.com上建立了自己的项目,对应的包如果不能下载,那么可以到这里去下载,比如:"go get golang.org/x/net"不能下载这个包,那么我们可以访问:"https://github.com/golang/net&quo…
问题一:invalid pseudo-version: preceding tag (v1.0.0) not found
远端GIT仓库删除tag后的报错:invalid pseudo-version: preceding tag (v1.0.0) not found
golang项目开发中,本地go mod tidy和go get -u都报错,找不到对应版本号。重点报…
1.读取目录 list, err : ioutil.ReadDir("DIR")//要读取的目录地址DIR,得到列表
if err ! nil {fmt.Println("read dir error")return
}
for _, info : range list { //遍历目录下的内容,获取文件详情,同os.Stat(filenam…
Next() Next should be used only inside middleware. Next应该在中间件中使用 It executes the pending handlers in the chain inside the calling handler. 在调用的handler 中,执行链路上等待的handlers Abort Abort prevents pending handlers from being called. Note th…
类型断言
Golang的类型断言提供对接口(interface)值的底层具体值的访问
t : i.(T)该语句断言接口值 i 持有具体类型 T 并将底层 T 值分配给变量 t。 如果 i 的具体类型不是 T,则该语句将引发panic。
t, ok : i.(T)类型断言可以返回两个值:基础值和报告…
这里填写标题1. Go Pipe1.1. Pipe1.2. Go pipe simple example1.3. Go cmd StdoutPipe1.4. Go pipe POST JSON data1.5. Go read standard input through pipe1.6. Go Stat1.7. Go pipe in HTTP handler1. Go Pipe
From: https://zetcode.com/golang/pipe/
1.1. Pipe
A pipe…
标题httptest 的介绍与使用重要的方法NewRequest(请求体)NewRecorder(响应体)NewServer(http 服务)测试 next/http 库创建的接口Golang httptestHow does one test net.Conn in unit tests in Golang?httptest 的介绍与使用
我们在写完接口之后都需要对接口进行测试, 在 gola…
接口详解 // 举例:sort包中的 Sort 函数,如下:
func Sort(data Interface)
Sort sorts data. It makes one call to data.Len to determine n, and O(n*log(n)) calls to data.Less and data.Swap. The sort is not guaranteed to be stable.…
安装go插件
启动vscode选择插件->搜go选择Go for Visual Studio Code插件点击安装即可。如图: 安装Go语言开发工具包
在Go语言开发的时候为我们提供诸如代码提示、代码自动补全等功能。
Windows平台按下CtrlShiftP,Mac平台按CommandShiftP…
构建web服务
参考官方教程go-zero安装
//安装goctl插件
go install github.com/zeromicro/go-zero/tools/goctllatest//加载go-zero依赖
go get -u github.com/zeromicro/go-zerolatestzero构建一个http服务器,基于goctl命令创建:
goctl api new demo…
https://golang.google.cn/doc/effective_go
代码格式化
type T struct {name string // name of the objectvalue int // its value
}// 使用gofmt自动格式化
type T struct {name string // name of the objectvalue int // its value
}
格式说明:
缩…
1.下载Gin: go get -u github.com/gin-gonic/gin出现:
package github.com/gin-gonic/gin: no Go files in E:\GO1\src\github.com\gin-gonic\gin解决办法:
在cmd中运行: go env -w GO111MODULEongo env -w GOPROXYhttps://gopr…
Gos: Armed Golang ? Project Address: https://github.com/storyicon/gos The current gos is still an alpha version, welcome more people to comment and improve it ?, you can add more commands to it, or modify something to make it perform better. You can down…
go module
go module是Go1.11版本之后官方推出的版本管理工具,并且从Go1.13版本开始,go module将是Go语言默认的依赖管理工具。
GO111MODULE
要启用go module支持首先要设置环境变量GO111MODULE 通过它可以开启或关闭模块支持,它有三个可选…
Tollbooth 是一个用 Go 语言编写的用来限制 HTTP 访问速度的中间件,可用来限制每个 HTTP 请求的传输速率。例如你可以不限制 / 的访问速率,但是可以针对 /login 限制每个 IP 每秒最多 POST 多少个请求。 Go 程序中使用的方法: package mainim…
一、Go异常
1、【unable to access ‘https://github.com/用户名/仓库名.git/‘: SSL certificate problem 解决的问题】
D:\GIT_workspace\go-valet-driving-system\backend>kratos new verifyCode
🚀 Creating service verifyCode, layout repo is https://g…
连接Mysql
访问此网站搜索MySQL第一个就是按照指引运行
go get -u github.com\go-sql-driver\mysql导入包建立连接
package mainimport ("database/sql""fmt""time"_ "github.com/go-sql-driver/mysql"
)var db *sql.DBfunc initdb…
目录标题 一、Defer1. Example2. Deferred methods 延迟方法3. Arguments evaluation 延迟参数4. Stack of defers 延迟程序堆栈5. Practical use of defer 实际使用 二、Error1. Example2. PathError3. DNSError4. Direct Comparison 直接比较5. Do not ignore errors 不要忽略…
Go 第三方库引起的线上问题、如何在线线上环境进行调试定位问题以及golang开发中各种问题精华整理总结。
01 前言
在使用 Go 语言进行 Web 开发时,我们往往会选择一些优秀的库来简化 HTTP 请求的处理。其中,go-resty 是一个被广泛使用的 HTTP 客户端。…
文章目录 前言Linux的设置Windlows设置Go version > 1.13 当你的GO的版本大于1.13的时候 Set environment variable allow bypassing the proxy for selected modules 前言
在进行Go开发的时候,设置Go的环境变量信息是必须的。下面介绍windows和Linux࿰…
最近在尝试用 LGTM 来实现 Go 微服务的可观测性,就顺便整理一下文档。
Tempo 会分为 5 篇文章:
Tempo 的架构启动 Tempo 配置项文件简单说明官网测试实操跑通gin 框架发送 trace 数据到 tempogo-zero 微服务框架使用发送数据到 tempo 第一篇是关于&…
ORM框架Gorm
gorm简介gorm声明模型gorm连接到数据库gorm创建记录gorm查询记录gorm高级查询gorm更新gorm删除SQL 构建器gorm Belongs To关系gorm Has One关系gorm Has Many关系gorm Many To Many关系gorm 实体关联gorm 会话gorm事务Gorm总结
安装
// elasticsearch sdk
go get -u github.com/elastic/go-elasticsearch/v7
//操作json
go get "github.com/tidwall/gjson"
go get "github.com/aquasecurity/esquery"demo
package esexampleimport ("bytes""context""en…
🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…
GJSON 是一个 Go 包,它提供了一种快速而简单的方法来从 json 文档获取值。它具有单行搜索、点符号路径、迭代和解析 json 行等功能。 GJSON 也可用于Python和Rust
入门
安装中
要开始使用GJSON 请安装 Go 并运行 go get :
$ go get -u github.com/ti…
GOOS和GOARCH
$GOOS可选值如下: darwin dragonfly freebsd linux netbsd openbsd plan9 solaris windows $GOARCH可选值如下 386 amd64 arm 在编译的时候我们可以根据实际需要对这两个参数进行组合。更详细的说明可以进官网看看
##
http://golang.org/cmd/go
http…
Go语言在变量声明、初始化以及赋值语句上相比其先祖C语言做了一些改进,诸如:
● 支持在同一行声明和初始化多个变量(不同类型也可以)
var a, b, c 5, "hello", 3.45
a, b, c : 5, "hello", 3.45 // 短变量…
Go 常用命令 文章目录 Go 常用命令一、Go 常用命令1.1 go build1.1.1 指定输出目录1.1.2 常用环境变量设置编译操作系统和 CPU 架构1.1.3 查看支持的操作系统和CPU架构 1.2 go test1.3 go vet1.4 go clean1.5 go fmt1.6 go get1.7 go install1.8 go tool1.9 go generate1.10 go…
在学习 Go 编程语言时,您可能会遇到这句著名的格言:“不要通过共享内存来进行通信;相反,通过通信来共享内存。” 这句话构成了 Go 强大并发模型的基础,其中通道(channels)作为协程之间的主要通信…
先来看一段代码
code: e : []int64{1, 2, 3}fmt.Println("cap of e before:", cap(e))e append(e, 4, 5, 6, 7)fmt.Println("cap of e after:", cap(e))output:cap of e before: 3
cap of e after: 8
为什么容量是8?
append了的4个元素&…
max 函数
func max[T cmp.Ordered](x T, y …T) T 这是一个泛型函数,用于从一组值中寻找并返回 最大值,该函数至少要传递一个参数。在上述函数签名中,T 表示类型参数,它必须满足 cmp.Ordered 接口中定义的数据类型要求࿰…
探索 GO 项目依赖包管理与Go Module常规操作 文章目录 探索 GO 项目依赖包管理与Go Module常规操作一.Go 构建模式的演变1.1 GOPATH (初版)1.1.1 go get 1.2 vendor 机制(中版)1.3 Go Module(最新版) 二.创…
一、下载go环境
下载go环境:Go下载官网链接找到自己想下载的版本,点击下载,比如我这是windows64位的,我就直接点击最新的。 二、安装go环境
双击下载的.msi文件 next next 他默认的是c盘,你自己可以改,然…
字符串
其实就是字符数组
注意
字节数组与字符串可以相互转换
a : "hello world"
b : []byte(a)
c : string(b)字节数组转换为字符串在运行时调用了slicebytetostring函数。需要注意的是,字节数组与字符串的相互转换并不是简单的指针引用,…
文章目录 golang常用库之-HTTP客户端请求库 grequests什么是grequests使用 golang常用库之-HTTP客户端请求库 grequests
什么是grequests
官网:github.com/levigross/grequests A Go “clone” of the great and famous Requests library Go语言的grequests库是一…
跟着文档走GORM 指南 | GORM - The fantastic ORM library for Golang, aims to be developer friendly.
1.使用命令拉取 go get -u gorm.io/gorm
go get -u gorm.io/driver/sqlite2.开始使用
package mainimport ("fmt""github.com/gin-gonic/gin"&…
哈喽大家好,我是陈明勇,今天分享的内容是 Go HTTP 调用。如果本文对你有帮助,不妨点个赞,如果你是 Go 语言初学者,不妨点个关注,一起成长一起进步,如果本文有错误的地方,欢迎指出&am…
引言
go语言中,如果某个数据类型实现了一系列的方法,如何批量去执行呢,这时候就可以利用反射里的func (v Value) Call(in []Value) []Value 方法。
// Call calls the function v with the input arguments in.
// For example, if len(in)…
来越多的公司在使用 Golang 语言进行开发。其上手容易学习成本低。使用 Golang 时有几个命令是我们经常会用到。在使用 Go 进行任何操作之前,您需要安装 Go 编译器。您可以通过运行检查它是否已安装:
go version
如果你已经安装了,你应该可…
类型断言
在 Go 中,类型断言用于提取和测试接口值的动态类型。通过断言,您可以确定接口值是否持有特定的底层具体类型,如果持有,则获取该值。下面是一个如何在 Go 中使用类型断言的示例:
package mainimport "f…
介绍与安装
本教程介绍了 Go,并讨论了选择 Go 相对于其他编程语言的优势。我们还将学习如何在Windows 中安装 Go。
介绍
Go也称为Golang,是由 Google 开发的一种开源、编译型、静态类型的编程语言。 Go创造背后的关键人物是Rob Pike、 Ken Thompson和…
语句
语句是Go编程语言中完成特定操作的单个逻辑指令。语句是组成程序的基本单元,它们可以控制程序流程、进行赋值、声明变量等。
1. 声明语句
1.1 变量声明
用于定义一个或多个变量,但不一定要赋值。
举例
var age int
var name, address string1…
一、前言 近来,笔者想学习下用go构造tcp数据包,这里涉及到gopacket库的使用,故这里记录下关于gopacket库的一些学习记录
二、介绍 gopacket 是 Go 语言的网络数据包处理库,它提供了方便的 API 来读取、分析、修改和生成网络数据包…
这是一个来自 API 的间歇性 500 个内部服务器错误的故事,这些错误最终是由 Go 包中的硬编码常量引起的database/sql。我将主要为您省去冗长的故事,并直接讨论问题以及我们发现的原因。我们注意到来自特定 API 端点的 500 错误数量有所增加,并…
mac 安装homebrew ,golang 安装homebrew安装golang选择 apple arm 版本安装配置环境变量 安装homebrew
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"回车执行指令后,根据提示操作。具体包括以下提示操作&am…
对于下面这段代码,我们知道 i 实际上的值就是 nil,所以 i nil 会生效
func main() {var i *int nilif i nil {fmt.Println("i is nil") // i is nil}
}现在换一种写法,我们将 i 的类型改成 interface{},i nil 依然…
刚开始的思路,先不管效率,跑出来再说,然后再进行优化。然后就有了下面的暴力代码:
func lengthOfLongestSubstring(s string) int {// count 用来记录当前最长子串长度var count int// flag 用来对下面两个 if 语句分流var flag …
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
解决方案:
方案一:没生效
go - 构建约束排除所有 Go 文件 - IT工具网
go modules - build constraints exclude all Go files in - Stack Overflow
方案二:生效,手动初始化创建一个目录
后续再研究原因,有明白的大…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
文章目录 说在前面计算旋转矩阵计算变换矩阵Inverse QuaternionEuler To QuaternionWorld to LocalPositionRotation Local to WorldPositionRotation 参考 说在前面 golang版本: go1.20.5 windows/386gonum版本:gonum.org/v1/gonum v0.14.0 计算旋转矩阵…
文章目录 1.简介2.test flag3.test/binary flags4.常用选项5.示例参考文献 1.简介
go test 是 Go 用来执行测试函数(test function)、基准函数(benchmark function)和示例函数(example function)的命令。 …
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
学无止境,今天继续学习go语言的基础语法
变量(Variables): 变量声明: var x int变量初始化: var x int 10或者可以使用类型推断: x : 10多变量声明: var a, b, c int同时初始化多个变量&#…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
go tree
代码实现请看 gitee 仓库链接
有很多生成目录树的工具,比如windows自带的tree命令,nodejs的treer,tree-cli等等。这些工具都很成熟、很好用,有较完善的功能。
但是,这些工具全部是命令式的,如果…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
一、变量定义方法 var 定义变量
var 变量名 类型 表达式
var name string "Snail"
var age int 21
var isOK bool bool
2.类型推导方式定义变量 a 在函数内部,可以使用更简略的: 方式声明并初始化变量**注意:**短变量只能用于声…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
1、安装
go get github.com/sirupsen/logrus
实现日志滚动
go get gopkg.in/natefinch/lumberjack.v2
2、初始化logrus参数 var Logger = logrus.New()func SetLogrus(logConf conf.LogConfig) {Logger.SetLevel(GetLevel(logConf.Level))Logger.SetReportCaller(true)Logg…
二、用go语言,写出 TREE-MINIMUM 和 TREE-MAXIMUM 的递归版本。
灵捷3.5 。
文心一言:
以下是用 Go 语言编写的树的最大值和最小值的递归版本代码:
package main import ( "fmt"
) type TreeNode struct { Val int Le…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
拿到手第一反应还是暴力,直接从低位到高位把数一个个取出来,然后乘以每一位的权重,构成一个新的反转后的整数 res 返回,代码如下
package mainimport ("fmt""math"
)func reverse(x int) int {if x > -10…
问题
最近在做项目时,需要使用golang的交叉编译,在windows系统上打包一个可以在linux系统上运行的golang程序的二进制文件。
这就需要暂时修改一下golang的配置环境:
set GOARCH amd64
set GOOS linux但是修改的时候发现在goland终端输入…
在Go语言中,要使用SIP协议进行注册,您可以使用第三方库,如github.com/cloudwebrtc/sip。以下是一个简单的示例代码,演示如何使用Go语言中的该库进行基本的SIP注册:
首先,您需要安装该库: go ge…
下载go SDK
All releases - The Go Programming Language
此处建议选择与本机windows一样的版本,便于调试,若不涉及本地windows,则忽略此提示 上传到linux 解压go SDK
执行下述命令进行解压
tar -xvf go1.19.linux-amd64.tar.gz
此处选择…
一、导包和结构体创建
package mainimport ("bytes""encoding/json""fmt""io""net/http"
)
//此处结构体根据实际情况定义
type RequestParams struct { Page int json:"page"Size int json:"…
利用时间片分割进程,致使宏观上A,B,C同时执行(并发) CPU利用率包含了执行和切换,进程/线程的数量越多,切换成本也会增大 最大并行数:GOMAXPROCS
work stealing: 偷其他队列的G hand off: 当前G1阻塞&#…
错误为command-line-arguments: open C:\Users\ADMINI~1\AppData\Local\Temp\go-build435947867\b001\exe\a.out.exe: Operation did not complete successfully because the file contains a virus or potentially unwanted software.
解决办法,将Local/Temp目录添…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
if语句
go里面if不需要括号将条件表达式包含起来,这与python也有点类似 if 条件表达式 {
}
if num > 18 {// ...
} else if num > 20 {// ...
} else {// ...
}需要注意的是go支持在if的条件表达式中直接定义一个变量,变量的作用域只在if范围内…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
go run 1.go 执行命令
go build 1.go 打包为exe
快速 并且无依赖
在开始项目 需要 生成 go.mod
go mod init mod 终端执行
go: creating new go.mod: module mod
go: to add module requirements and sums:go mod tidy go的基本目录结构
src
------gocode
------------项…
文章目录 关于切片的扩容问题切片的创建切片的扩容切片的缩容 关于切片的扩容问题 如果在程序中出现下列提示:说明你建立的切片容量不够,超出索引: panic: runtime error: index out of range [0] with length 0 切片的创建 Go 语言中的切片是…
五、用go语言,假设为每个结点换一种设计,属性 x.p 指向 x 的双亲,属性 x.succ 指向 x 的后继。试给出使用这种表示法的二叉搜索树 T 上 SEARCH、INSERT 和DELETE 操作的伪代码。这些伪代码应在 O(h) 时间内执行完,其中 h 为树 T 的…
Delve是个啥 Delve is a debugger for the Go programming language. The goal of the project is to provide a simple, full featured debugging tool for Go. Delve should be easy to invoke and easy to use. Chances are if you’re using a debugger, things aren’t go…
要开始使用 GJSON,请安装 Go 并运行go get: $ go get -u github.com/tidwall/gjson 这将检索库。
获取一个值
Get 在 json 中搜索指定路径。路径采用点语法,例如“name.last”或“age”。当找到该值时,它会立即返回。 package mainimport "github.com/tidwall/gjson…
leecode最小覆盖字串
leecode链接地址 给定两个字符串 s 和 t 。返回 s 中包含 t 的所有字符的最短子字符串。如果 s 中不存在符合条件的子字符串,则返回空字符串 “” 。
如果 s 中存在多个符合条件的子字符串,返回任意一个。
题解
func minWindow(…
说明一下Golang 中 make 和 new 的区别?
好的,关于 make 和 new 在 Go 语言中的区别,我来解释一下。 new 函数的作用: new(T) 函数会为 T 类型的新项分配零值内存,并返回其地址,即一个 *T 类型的值&#x…
基本语法 变量声明: 使用 var 关键字,如 var x int 声明一个整型变量 x。简短声明方式,如 y : 0 直接初始化 y。 函数定义: 使用 func 关键字定义函数,如 func add(a int, b int) int { return a b }。 控制结构&…
什么是闭包
闭包的概念,在很多语言中都有,比如python,这里要介绍的go,闭包就是函数与其相关的环境组合的一个整体。 我们通过一个例子来理解闭包:
func Addfunc() func (x int) int {var n int 0// 返回的是一个函数…
在 Go 语言中,没有像 Spring Boot 这样的完整的 IOC(Inversion of Control)框架。Go 语言的设计哲学更倾向于简洁、轻量级的解决方案,没有像 Java 的 Spring Framework 这样重量级的 IOC 容器。
然而,Go 社区中有一些…
原问题地址:validate-struct field if it exists
有定义结构
package mainimport ("fmt""encoding/json"
)type User struct {Name string json:"name,omitempty"Username *string json:"username,omitempty"Email …
Bug:Too many open files 今天在开发某个下载功能时,发现文件总是下载到250多个程序就挂掉,同时会打崩服务器,查看错误日志发现报:too many open files. 思路:根据错误信息可以知道打开的文件数过多&#x…
swag
Swag将Go的注释转换为Swagger2.0文档。我们为流行的 Go Web Framework 创建了各种插件,这样可以与现有Go项目快速集成(使用Swagger UI)。
目录
快速开始支持的Web框架如何与Gin集成格式化说明开发现状声明式注释格式 通用API信息API操…
一、介绍
golangci-lint 是一个代码检查工具的集合,聚集了多种 Go 代码检查工具,如 golint、go vet 等。
优点:
运行速度快可以集成到 vscode、goland 等开发工具中包含了非常多种代码检查器可以集成到 CI 中这是包含的代码检查器列表&…
包以及常用内置包归纳 包的概念math包time包sync包 Go 语言官方的包文档网站:包文档 包的概念
Go语言是使用包来组织源代码的,包(package)是多个 Go 源码的集合,是一种高级的代码复用方案。
任何源代码文件必须属于某…
当安装后go语言后。 尝试编写go程序。
当使用 go install 命令,报错。
go: go install requires a version when current directory is not in a moduleTry go install jvmgo\ch01latest to install the latest version通过查找资料。 用命令: go env …
初始化Go模块和管理依赖的全面指南 go mod init 是Go编程语言(通常称为Golang)中用于初始化新Go模块的命令。在Go中,一个模块是一组相关的Go包,它们作为一个单元一起进行版本控制。通常,在项目目录的根目录下使用 go m…
go 语言没有构造函数一说,所以一般会定义NewXXX函数来初始化相关类。 NewXXX 函数返回接口时就是简单工厂模式,也就是说Golang的一般推荐做法就是简单工厂。
代码实现
package simplefactoryimport "fmt"//API is interface
type API interf…
从 A Tour of Go 可以看到一些 Go 比较特殊的点 文章目录 变量声明时,类型放在后面Array 的引用 Slicereceiver 和 argumentbuilt-int特殊接口Error 变量声明时,类型放在后面
var i, j int 1, 2declaration-syntax
Array 的引用 Slice
slices-intro …
通用占位符
%v
值的默认格式表示
fmt.Printf("%v\n", 100)}//100%v
类似%v,但输出结构体时会添加字段名
o : struct{ name string }{"tim"}
fmt.Printf("%v\n", o)}}
//{name:tim}%#v
值的 Go 语法表示
o : struct{ name stri…
前言
大家好,这里是白泽。 《Go语言的100个错误以及如何避免》 是最近朋友推荐我阅读的书籍,我初步浏览之后,大为惊喜。就像这书中第一章的标题说到的:“Go: Simple to learn but hard to master”,整本书通过分析100…
Go 企业级实战-gRPC
Go 企业级gRPC, 又名:Go企业级应用到底层开发(第5天) 这个系列是准备做从go基础到Web开发,系统编程,云原生应用, 网络编程, 工具和脚本开发, 机器学习,CGo编程,…
构建/打包
使用 Go 的构建命令:
go build在包含 main 函数的包的目录下执行,它会生成一个可执行文件。文件名默认与包所在的目录名相同,但也可以使用 -o 选项来指定输出的文件名
交叉编译
Windows 环境下进行交叉编译以构建其他平台的可执…
Go 编程语言中的常用命令主要用于构建、测试、运行和管理项目。以下是一些常见的 Go 命令,以及它们对项目的用途:
go run
用途: 编译并运行 Go 程序。
示例:
go run main.gogo build
用途: 编译 Go 程序…
Go text/template 是 Go 语言标准库中的一个模板引擎,用于生成文本输出。它使用类似于 HTML 的模板语言,可以将数据和模板结合起来,生成最终的文本输出。
Go html/template包实现了数据驱动的模板,用于生成可防止代码注入的安全的…
sync.Cond采用一个L锁进行保护条件变量,并使用通知队列来堵塞和通知goroutine
// Cond implements a condition variable, a rendezvous point
// for goroutines waiting for or announcing the occurrence
// of an event.
//
// Each Cond has an associated Lo…
【Go-Zero】Error: only one service expected goctl一键转换生成rpc服务错误解决方案 大家好 我是寸铁👊 总结了一篇Error: only one service expected goctl一键转换生成rpc服务错误解决方案的文章✨ 喜欢的小伙伴可以点点关注 💝 问题背景
今天寸铁在…
For statements
本文简单翻译了 Go 语言中 for 的三种用法,可快速学习 Go 语言 for 的使用方法,希望本文能为你解开一些关于 for 的疑惑。详细内容可见文档 For statements。
For statements with single condition
在最简单的形式中,只要…
GO 项目工程管理(Go Modules)
Go 1.11 版本开始,官方提供了 Go Modules 进行项目管理,Go 1.13开始,Go项目默认使用 Go Modules 进行项目管理。
使用 Go Modules的好处是不再需要依赖 GOPATH,可以在任意位…
第一个 Go 程序
1 安装 Go
Go语言官网:Download and install - The Go Programming Language,提供了安装包以及引导流程。
以 Windows 为例,进入windows安装包下载地址:All releases - The Go Programming Language,…
【GO语言卵细胞级别教程】04.GO函数介绍 目录: 【GO语言卵细胞级别教程】04.GO函数介绍0.创建项目1.函数的引入2.注意事项3.详细介绍3.1 形参介绍 0.创建项目 创建目录 执行命令加载模块 cd 02.gostudy目录下
1.进入目录下
cd 02.gostudy
2.初始化模块变量
go …
gorm day8
gorm Has Many关系gorm Many To Many关系 gorm Has Many关系
Has Many
在GORM(Go的一个对象关系映射库)中,“Has Many” 关系表示一个实体与另一个实体之间的一对多关系。这意味着一个实体(我们称之为"父"…
xorm介绍
官网:https://xorm.io/ git文档:https://github.com/go-xorm/xorm xorm 是一个 Go 语言的 ORM(对象关系映射)库,它提供了一种简单、高效的方式来将 Go 语言中的结构体与数据库表进行映射,并提供了…
goland 下载依赖 go mod tidy:保持依赖整洁
go mod tidy 命令的作用是清理未使用的依赖,并更新 go.mod 以及 go.sum 文件。
go mod tidy 和 go mod vendor 两个命令是维护项目依赖不可或缺的工具。go mod tidy 确保了项目的 go.mod 文件精简且准确&…
参考:使用IDEA配置GO的开发环境备忘录-CSDN博客
1.下载All releases - The Go Programming Language (google.cn)
2.直接next
3.window环境变量配置 4.idea的go插件安装 5.新建go项目找不到jdk解决
https://blog.csdn.net/ouyang111222/article/details/1361657…
GO 语言的数据类型
Go 语言内置对以下这些基本数据类型的支持: 布尔类型:bool 整型:int8、byte、int16、int、uint、uintptr 等 浮点类型:float32、float64 复数类型:complex64、complex128 字符串:st…
在一根无限长的数轴上,你站在0的位置。终点在target的位置。
你可以做一些数量的移动 numMoves :
每次你可以选择向左或向右移动。 第 i 次移动(从 i 1 开始,到 i numMoves ),在选择的方向上走 i 步。 给定整数 ta…
字符串中常用的系统函数
字符串在程序开发中,使用的是非常多的,常用的函数如下:
1.统计字符串的长度,按字节len(str)2.字符串遍历,同时处理有有中文的问题 r : []rune(str)3.字符串转整数: n, err : strc…
给你一个长度为 n 的整数数组 coins ,它代表你拥有的 n 个硬币。第 i 个硬币的值为 coins[i] 。如果你从这些硬币中选出一部分硬币,它们的和为 x ,那么称,你可以 构造 出 x 。
请返回从 0 开始(包括 0 )&a…
JWT (JSON Web Tokens) 是一种基于 JSON 格式的轻量级身份验证和授权方案。在 Go 项目中使用 JWT,一般需要完成以下步骤:
1. 安装 JWT 库
在 Go 项目中使用 JWT 需要先安装 JWT 库,可以使用以下命令安装:
go get -u github.com…
Go 处理 json数据主要就是使用 json 包下的 Marshal 和 UnMarshal 两个函数。
定义结构体 User
type User struct {Name string json:"name"Age int json:"age"Height float64 json:"height"Hobbies []string json:"hobb…
cobra开源地址
https://github.com/spf13/cobra
cobra是什么
Cobra is a library for creating powerful modern CLI applications.
Cobra is used in many Go projects such as Kubernetes, Hugo, and GitHub CLI to name a few. This list contains a more extensive lis…
写在前面
Go 为了自身 goroutine 执行和调度的效率,自身在 runtime 中实现了一套 goroutine 的调度器,下面通过一段简单的代码展示一下 Go 应用程序在运行时的 goroutine,方便大家更好的理解。 The Go scheduler is part of the Go runtime,…
切片
切片是一种比较特殊的数据结构。它围绕动态数组的概念构建,可以按需自动增长和缩小。总的来说它可理解为动态数组,并根据切片里的元素自动调整切片长度。
切片指针
常用定义方式如下
var name []*type //定义方式一
name : []*type{} //定义方式…
Go单元测试基础1.go test工具2.单元测试函数3.go test -v/go test -run4.跳过某些测试用例5.子测试6.表格驱动测试7.并行测试8.使用工具生成测试代码9.测试覆盖率1.go test工具
Go语言中的测试依赖go test命令。编写测试代码和编写普通的Go代码过程是类似的,并不需…
耐心和持久胜过激烈和狂热。 哈喽大家好,我是陈明勇,本文介绍的内容是 Go select 语句。如果本文对你有帮助,不妨点个赞,如果你是 Go 语言初学者,不妨点个关注,一起成长一起进步,如果本文有错误…
这是当初参加训练营的时候学go基础的时候记的一点笔记 go语句不用分号隔开,除非一行要写多个语句,用户自己加分号,不过不建议这么做
go声明变量的类型一致都是放在后面
c:int a10; go: var a int 10 “va…
循环语句for
1.1.1. Golang for支持三种循环方式,包括类似 while 的语法。
for循环是一个循环控制结构,可以执行指定次数的循环。
语法
Go语言的For循环有3中形式,只有其中的一种使用分号。
for init; condition; post { }
for conditio…
前言
块状链表是介于链表和数组之间的数据结构,能够在 O ( n ) O(\sqrt{n}) O(n )时间内完成插入、删除、访问操作。
数据结构如图所示。假设最大容量为 n n n, 则它有一个长度为 s n s\sqrt{n} sn 的链表。链表中每个结点是一个长度为 2 n 2 \times \sqrt{…
参照网上的教程安装一直提示proto-gen和proto-micro找不到路径,后面看了下这位大佬的教程之后安装成功,因此做了下整理记录在此:
go get github.com/micro/micro/v2latest
go get github.com/golang/protobuf/protolatest
go get github.com…
👇我在这儿 通过这 5个诀窍和技巧来将那些运行缓慢,低效的 go 代码变成精简,高效,快速的机器代码。各位 Go 大师和初学者们,你们是否已经厌倦了那些慢得让你想要抓狂的 Go 应用程序?别担心,我们…
文章目录1.下载2.安装3.GOROOT4.GOPATH5.GO111MODULE5.1 GOPATH 模式5.2 Go Modules 模式6.GOPROXY7.GOSUMDB8.GONOPROXY/GONOSUMDB/GOPRIVATE9.GOMODCACHE10.GOCACHE11.GOENV12.GOBIN13.参考资料1.下载
Go 官网下载地址:https://golang.google.cn/dl/ 2.安装
下载…
环境准备 Go 1.15 及之前版本安装goctl GO111MODULEon GOPROXYhttps://goproxy.cn/,direct go get -u github.com/zeromicro/go-zero/tools/goctllatest Go 1.16 及以后版本安装goctl GOPROXYhttps://goproxy.cn/,direct go install github.com/zeromicro/go-zero/tools/goctl…
Java 和 GO 中 switch 区别
JavaGo变量expressionbyte、short、int 、 char和String任何类型break 语句如果当前匹配成功的 case 语句块没有 break 语句,则从当前 case 开始,后续所有 case 的值都会输出,如果后续的 case 语句块有 break 语句…
目录
112. 路径总和 Path Sum 🌟
113. 路径总和 II Path Sum II 🌟🌟
114. 二叉树展开为链表 Flatten Binary Tree to Linked-list 🌟🌟
🌟 每日一练刷题专栏 🌟
Golang每日一练 专栏
…
govue——基于gin框架和gorm的web开发实战gin框架视频、资料、笔记安装Go环境, 添加环境变量(可能自动添加好)下载 Go环境变量goland 报错: GOROOT is not defined创建项目:Golang中的GoPath和GoModule什么是GoPath&am…
前言
pprof是Go程序自带的性能分析工具,prof是profile(画像)的缩写,用于分析go程序的性能。 Profile Descriptions: allocs: A sampling of all past memory allocations 已分配内存采样 block: Stack traces that led to bloc…
目录 文章目录 Go RPCHTTP RPCTCP RPCJSON RPC Go RPC
Go 标准包中已经提供了对 RPC 的支持,而且支持三个级别的 RPC:TCP、HTTP、JSONRPC。但 Go 的 RPC 包是独一无二的 RPC,它和传统的 RPC 系统不同,它只支持 Go 开发的服务器与…
Go语言操作数据库
Go语言提供了关于数据库的操作,包下有sql/driver 该包用来定义操作数据库的接口,这保证了无论使用哪种数据库,操作方式都是相同的; 准备工作:
下载驱动
需要在代码所在文件夹下执行相应的命令
go get github.com/go-sql-driver/mys…
一. 引入gin、gorilla websocket包
go get github.com/gin-gonic/gin
go get github.com/gorilla/websocket 二. 服务端代码
package mainimport ("bytes""fmt""github.com/gin-gonic/gin""github.com/gorilla/websocket""log&…
问题说明
使用下面的结构体在执行gorm的Save、update、updates方法时,会自动调用钩子函数BeforeUpdate,官方文档中的示例也是这么写的。但是出现报错reflect.Value.Addr of unaddressable value。
type ArtworkLockRecord struct {//some fields
}
func (a *Artwo…
目录
231. 2的幂 Power of Two 🌟
233. 数字 1 的个数 Number of Digit One 🌟🌟🌟
🌟 每日一练刷题专栏 🌟
Rust每日一练 专栏
Golang每日一练 专栏
Python每日一练 专栏
C/C每日一练 专栏
Java…
错误概览 执行 go mod tidy 时,提示如下错误 > go mod tidy
github.com/myrepo/myproj importsgo.k6.io/k6 importsgo.k6.io/k6/cmd importsgithub.com/fatih/color loaded from github.com/fatih/colorv1.12.0,but go 1.16 would select v1.13.0To upgrade to t…
以下是一个简单的 Go gRPC 例子,其中包括服务端和客户端: 首先,我们需要安装 grpc 和 protobuf 的 Go 插件:
go get -u google.golang.org/grpc
go get -u github.com/golang/protobuf/protoc-gen-go然后,我们需要定义…
1、定义定长数组
var myArray [10]int{1,2,3,4,5}
2、定义动态数组
var arr [ ] int
arr make([ ]int,6)
3、定义map
var m map[string]string
m make(map[string]string,10){
"one": "java",
"two": "c#",
}
3、定…
Rob Pike 在 Google I/O 2012 - Go Concurrency Patterns 里演示了一个例子(daisy chain)。 视频地址:https://www.youtube.com/watch?vf6kdp27TYZs 这个例子抽象于“传话游戏”,几个人站成一队,第一个人跟第二个人悄…
2019独角兽企业重金招聘Python工程师标准>>> golang mysql 驱动安装 go get github.com/go-sql-driver/mysql go install github.com/go-sql-driver/mysql 以下是select的例子package mainimport ("database/sql""fmt"_ "github.com/go-s…
安装
下载Go安装包,golang download 点我跳转下载页面,选择 Go 版本后,再选择需要的安装包格式,有压缩包和安装包两种,选择自己需要的格式。以压缩包为例。下载完成后,将压缩包解压到 $HOME/ go 文件夹下。…
什么是 Go kit?
Go是一种很棒的通用语言,但是微服务需要一定量的专业支持。 RPC安全性,系统可观察性,基础结构集成甚至程序设计。Go kit 填补了标准库留下的空白,并使 Go 成为在任何组织中编写微服务的一流语言 下面基于go-kit实…
转发自自己的公众号(灰子学技术) 这篇文章便是笔者,在学习Go语言变量的时候,整理的一些知识。
一、变量定义的格式
C的变量定义表达式如下所示:
Type name expression;,例如 int number 10; // 表示的…
2019独角兽企业重金招聘Python工程师标准>>> 1:在go语言中,先来看创建slice的性能分析,我们知道slice有append这个功能 t : time.Now()m : []string{}for i : 0; i < 1000000; i {m append(m, strconv.Itoa(i))}
fmt.Println(…
为什么80%的码农都做不了架构师?>>> 一个简单的helloword聊天室. 先粗鲁地上个图 client side <----> server side helloworld.proto syntax "proto3";package helloword;import "github.com/golang/protobuf/ptypes/timestamp/…
一、环境介绍 linux centos7php7.1.18go1.12.12核4G内存二、代码 swoole代码<?php
$http new swoole_http_server("127.0.0.1", 9501);$http->on("start", function ($server) {echo "Swoole http server is started at http://127.0.0.1:950…
Go语言作为一门高效、简洁且易于学习的编程语言,其编译速度也是其优秀特性之一。在Go语言中,go build和go install命令是两个重要命令,不仅可以编译和安装Go代码,还能生成可执行文件和库文件。 go build go build命令主要用于编译…
Golang 列表 list 详解
在 Golang 中,list 是一个双向链表实现,可以用来存储任意类型的元素。本文将对 list 进行详细的介绍,包括创建、初始化、添加元素、删除元素、遍历等操作,并提供相应的示例代码。
list 的创建和初始化
在…
捕获Ctrl C中断 优雅的退出程序 Gracefully terminate a program in Go os/signal 来捕获系统中断等信号// Notify方法将signal发送到channel,
func Notify(c chan<- os.Signal, sig ...os.Signal)
// 初始化一个接受os.Signal的通道
c : make(chan os.Signal)
…
一、Goland下载 官方最新版本下载地址: Download GoLand: A Go IDE with extended support for JavaScript, TypeScript, and databases 其他版本下载: Other Versions - GoLand 二、安装过程 1.下载好goland-2021.1.1安装包后,双击运行安装包…
Go的执行原理以及Go的命令
一、Go的源码文件
1、命令源码文件:
声明自己属于 main 代码包、包含无参数声明和结果声明的 main 函数。
命令源码文件被安装以后,GOPATH 如果只有一个工作区,那么相应的可执行文件会被存放当前工作区的 bin 文…
github.com/levigross/grequests: A Go "clone" of the great and famous Requests library 特点: 响应可以序列化为JSON和XML轻松上传文件轻松下载文件支持以下HTTP请求方式:GET,HEAD,POST,PUT&…
Go 语言支持以下系统: LinuxFreeBSDMac OS X(也称为 Darwin)Windows安装包下载地址为:https://golang.org/dl/。 如果打不开可以使用这个地址:https://golang.google.cn/dl/。 各个系统对应的包名: 操作系统…
在windows环境下做的以下配置 1、创建一个工程文件夹:dockerApiTools
2、初始化go mod 进入工程目录下运行命令:
go mod init docker.api.tools.iscas.com/v13、配置环境变量 GORROXY修改go下载的代理镜像为国内的 GO111MODULE为on 表示只会使用go mo…
Go web 开发gin框架开发通用模板配置文件模块日志记录模块Mysql数据库模块Redis模块路由模块Main函数模块gin框架开发通用模板
为了方便以后的开发需要哈,今天搞一套比较实用的开发脚手架其中包含了 配置文件 、日志 、mysql初始化 、redis初始化 、路由模块 、mai…
go test工具 任何语言都会有自己的单元测试啥测试啥的呀,像java常用的就是junit注解测试呀,我们go也不例外呢,go语言中测试依赖 go test 命令进行测试,编写测试代码和编写普通的Go代码过程是类似的,并不需要学习新的语…
写在前面
记录 Go 配置使用 GRPC 的方法。 由于国内的原因,使用 go get进行第三方包依赖的时候,会提示超时的问题,故可以使用国内的镜像代理,例如:
go env -w GOPROXYhttps://goproxy.cn,https://mirrors.aliyun.com…
验证数据签名本文链接: https://dreamerjonson.com/2018/12/07/golang-37-blockchain-verifysign/版权声明: 本博客所有文章除特别声明外,均采用 CC BY 4.0 CN协议 许可协议。转载请注明出处!转载于:https://blog.51cto.com/13784…
语言变化:增加了类型别名 To find out what has changed in Go 1.9, read the draft release notes:https://tip.golang.org/doc/go1.9Documentation for Go 1.9 is available at:https://tip.golang.org/转载于:https://www.cnblogs.com/majianguo/p/7047128.html
This is a crontab service that supports hot plug and high performance. In addition, it supports second level (first parameters), multi time point and time section function.这是一个支持热插拨、高性能的crontab服务,另外,它还支持秒级别&am…
使用dlv (delve golang调试器)打印字符串无法打印全,只能打印一部分(64个字节),在gdb中有 (gdb) set print elements
Argument required (integer to set it to, or "unlimited".).
(gdb) show print elements
Limit on string chars or array elements to print i…
docker client must be run with elevated privileges to connect 必须以提升的权限运行客户端才能连接
windows运行docker的时候提示权限不足, 首先看下自己是不是用管理身份打开的powershell (在运行那里搜索powershell 然后有管理身份运行࿰…
2019独角兽企业重金招聘Python工程师标准>>> package main import ( "fmt" "os" ) type tt struct { //定义数据结构 tt,用于存放每日的课程 One string //0 Two string //1 Three string //2 Four string…
Go reflect为何需要使用 reflect 获取:减少重复代码1. API 接口中抽取参数的逻辑大量重复 API 接口自然是要获取传过来的数据,不同接口要获取的数据自然也不一样,如果不做特殊处理,必然是每个接口都有一堆功能重复的从 request 里…
1、变量 运行过程中可变的量
声明并初始化:
var <变量名> [type] <值>如果不初始化会默认初始化 各种类型的初始化值:
string:空字符串
float:0
int:0
bool:falsego语言是强类型语言
批量声明变量
var (a int 3b bool truec float32…
Go语言简介特点编码风格Go安装测试Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(…
声明变量
声明单个变量
var i int10
i : "rom"声明多个变量
var n1,n2,n3 int
var (n1"n1"n2"n2"
)
n1,n2,n3 : 100,"jerry",c不同类型之间不能互相更改
var i int 10
i15 // 可以更改
i1.2 // 不可以更改 因为1.2不是int类型查…
1、查看Linux系统版本:uname -a 2、根据系统版本找到对应的Go语言安装包,Go语言中文网地址:https://studygolang.com/dl 3、切换到 /usr/local 目录下,下载Go语言安装包,并解压缩:
cd /usr/local/#下载安…
字符串getBytes()方法 (String getBytes() Method) getBytes() method is a String method in java and it is used to get the byte values of a given string. getBytes()方法是Java中的String方法,用于获取给定字符串的字节值。 Syntax: 句法: byte…
Python threading.setprofile()方法 (Python threading.setprofile() Method) setprofile() is an inbuilt method of the threading module in Python. It is used to set a profile function for all the threads that are created by the threading module. The func functi…
1.什么是yaml? 官网解释 %YAML 1.2
---
YAML: YAML Aint Markup LanguageWhat It Is: YAML is a human friendly data serializationstandard for all programming languages. 2.yaml语法 yaml语法,请参考这位仁兄的,写的很详细。 3. golang解析yaml文件 系统环境: MacOS、vim…
metrcis输出 collector.go package mainimport ("github.com/prometheus/client_golang/prometheus"
)//Define a struct for you collector that contains pointers
//to prometheus descriptors for each metric you wish to expose.
//Note you can also include …
文章目录1. go get命令2. 报错package xxx is not in GOROOT or GOPATH3. 切片的拷贝4. 获取本机对外IP地址5. 反射1. go get命令
使用go自带的go get下载包的时候总是报错,仔细检查了下,其实是自己粗心使用仓库的格式不对
开头不能有https://结尾不能…
主题:用 Go 实现 Minecraft 内容: 下载编译运行图形库为什么用 go 实现一些例子显示优化持久化项目完成者:饼干 架构师,曾就职腾讯。主要技术方向是高并发以及分布式系统的设计与实现。 效果图 项目地址 下载编译运行 安装go get …
targroup 是抓取目标
// Group is a set of targets with a common label set(production , test, staging etc.).
// Group 是一组目标的集合,这组目标有一个共同的标签集。
type Group struct {// Targets is a list of targets identified by a label set. Each…
defer顾名思义就是延迟执行,那么defer在Golang中该如何使用以及何时使用呢?A "defer" statement invokes a function whose executionis deferred to the moment the surrounding function returns,Golang的官方时这么定义的。1.那么在什么情况…
cgo
在 Go 中调用 C 代码:
/*
int sum(int a, int b) {return ab;
}
*/
import "C"func main() {println(C.sum(1, 1))
}cgo 是让 go 语言调用 C 方法的技术cgo 需要 go 调度器和协程栈的配合cgo 一般用于找不到 go 实现的情况cgo 不能提高性能…
背景是要根据 不同的 op 解析字符串到 不同的结构体,然后再执行相应的操作。 你当然够可以通过 if else 这样来枚举,但是这样不是很优雅。 通过定义 var OpArgsMap make(map[string]OP) 把 op 和 结构体类型映射起来就优雅多了。
package resourceimpo…
Go基本数据类型
整型
//以下是有符号的整型
var a int
var b int8
var c int16
var d int32
var d int64//以下是无符号的整型
var e uint
var f uint8
var g uint16
var h uint32
var i uint64注意点
不同的类型不能直接作运算.int后面的数字8,16,32,64表示整型的范围. …
1 使用 go mod 创建项目并使用 通过命令初始化项目 # go mod init 项目名称
go mod init go_mod_testdemo 编写业务逻辑 引用本项目的包引用外部依赖的包 image-20220529114505440.png// simple_calc.go
package calcfunc Add(num1, num2 int) int {return num1 num2
}func Su…
这里填写标题1. Failed to launch: could not launch process: EOF1.1. 起因1.2. 原因思考1.3. 花絮1.4. 总结1. Failed to launch: could not launch process: EOF
记一次 MacOS 下面的排错。
1.1. 起因
更换了 M1 新的 mac 本本后,在使用 vscode 调试 go 程序 …
这里填写标题1. golang 设计模式1.1. 单例模式1. golang 设计模式
1.1. 单例模式
type singleton struct{}var ins *singleton
var once sync.Oncefunc GetIns() *singleton {once.Do(func() {ins &singleton{}})return ins
}
package main import ( "encoding/json" "fmt" ) //父对象 type Human struct { Name string json:"english_name" //把struct编码成json字符串时,Name字段的key是english_name,而不是Name Age int…
前几天在操作sql语句的时候,发觉使用%会报错 例如 rows, err : DB.Query("select * from t_ally where ally_name like ’%?%‘", allyName)google了好久才发现: The wildcard % should be part of the parameter string 大致意思…
1. 类型别名
type Alias Type此后,在 Alias 的作用域内,Alias 就是 Type 的别名。如,
type Second uint32
var t1 Second 10
var t2 uint32 20
var t3 t1 t22. 类型定义
type NewType TypeNewType 是一个新的类型,称为 d…
原文地址:Part 28: Polymorphism - OOP in Go 原文作者:Naveen R译者:咔叽咔叽 转载请注明出处。Go 中的多态性是在接口的帮助下实现的。正如我们已经讨论过的,接口可以在 Go 中隐式实现。如果类型为接口中声明的所有方法提供定义…
go-redis可以用来对redis进行操作,如果你的项目使用的是Redis6,,那么需要安装:
go get github.com/go-redis/redis/v8 如果您的项目中使用的是Redis7,那么需要安装:
go get github.com/go-redis/redis/v9 对于一些低版本的redis版本,可以使用v7:
go get githu…
转自: http://russmatney.com/techsposure/update-protobuf-golang-grpc/ TL;DR: When protobuf updates, all the .protos and deps need to update. This post is a quick-lookup for how to do that so I’m not googling it every time. Go Dependencies Update…
欢迎来到 Golang 系列教程的第 21 篇。 在前面的教程里,我们探讨了并发,以及并发与并行的区别。本教程则会介绍在 Go 语言里,如何使用 Go 协程(Goroutine)来实现并发。 Go 协程是什么? Go 协程是与其他函数…
1、反射 type sign struct { Name string json:"name,omitempty" Age int json:"age,omitempty" } var s sign s.Name "csdn" s.Age 18 //方式1 反射 var data make(map[string]interface{}) t : reflect.TypeOf(s) v : …
❝本文转自掘金,原文:https://juejin.cn/post/7074894564879761416,版权归原作者所有。欢迎投稿,投稿请添加微信好友:cloud-native-yang❝前置知识:希望您对 Linux Namespace 有所了解,以及一些…
这两天学完了 A Tour of Go 官方的语法教学,里面有很多的 Excercise(训练题)。希望对大家有用,如果有其他人也写过,并觉得我写的不对的,求教!❤️ Exercise: Loops and Functions 题目 给一个 n…
一、File文件操作
首先,file类是在os包中的,封装了底层的文件描述符和相关信息,同时封装了Read和Write的实现。
1、FileInfo接口
FileInfo接口中定义了File信息相关的方法。
type FileInfo interface {Name() string // base name …
安装:
go get github.com/bits-and-blooms/bitset下面代码把fmtx换成fmt就行
//------------基本操作------------//构建一个64bit长度的bitsetb : bitset.New(64)//放入一个数b.Set(10)fmtx.Println("add-10:", b.DumpAsBits()) // 0000000…
一、gorm安装
1.下载gorm
go get -u gorm.io/gorm //gorm框架
go get -u gorm.io/driver/mysql //驱动2.mysql准备工作
mysql> create database godb;
mysql> grant all on *.* to admin% identified by golang123!;
mysql> flush privileges;3.导入gorm框架
impo…
在日常开发过程中,会频繁遇到对时间进行操作的场景,使用 Golang 中的 time 包可以很方便地实现对时间的相关操作。接下来的几篇文章会详细讲解 time 包,本文讲解一下 time 包中的函数。
func Now() Time
返回当前的系统时间。
package mai…
常用
$ go env -w GO111MODULEon $ go env -w GOPROXYhttps://goproxy.cn,direct
切换成阿里云
go env -w GOPROXYhttps://mirrors.aliyun.com/goproxy/,direct 很多需要切换到阿里云才行
删除
$ go env -u GOPROXY
查看
$ go env 或者 go env list
go get 出错的时候 …
文章目录 安装获取凭证Gin处理微服务处理 如果你对Gin和微服务有一定了解,看本文较容易。 安装
执行命令:
go get github.com/qiniu/go-sdk/v7获取凭证
Go SDK 的所有的功能,都需要合法的授权。授权凭证的签算需要七牛账号下的一对有效的A…
go web框架 gin-gonic源码解读02————router 本来想先写context,但是发现context能简单讲讲的东西不多,就准备直接和router合在一起讲好了 router是web服务的路由,是指讲来自客户端的http请求与服务器端的处理逻辑或者资源相映射的机制。&…
Golang 中的 archive/zip 包用于处理 ZIP 格式的压缩文件,提供了一系列用于创建、读取和解压缩 ZIP 格式文件的函数和类型,使用起来非常方便。
实现压缩功能
1、首先需要创建一个 zip 文件。
zip 文件也是一个文件,首先需要创建一个基础的…
初窥门径:一个 Go 程序的结构是怎样的?
创建“hello,world”示例程序
在 Go 语言中编写一个可以打印出“hello,world”的示例程序,我们只需要简单两步,一是创建文件夹,二是开始编写和运行。通…
目录标题 一、Pointer1. Declaring pointers2. Zero value of a pointer3. Creating pointers using the new function4. Dereferencing a pointer5. Passing pointer to a function6. Returning pointer from a function7. Do not pass a pointer to an array as an argument …
go es实例
1、下载第三方库
go get github.com/olivere/elastic下载过程中出现如下报错: 解决方案:
2、示例
import
package mainimport ("context""encoding/json""fmt""reflect""time""…
get 方式安装超时问题,国内直接用官网推荐的下面这个命令大概率是安装不成功的
go get -u github.com/gin-gonic/gin
可以在你的项目目录下执行下面几个命令:
比如我的项目在E:\Oproject\zl cmd E:\Oproject\zl>就在目录下执行
go env -w GO111…
目录 1. golang 命令行 command line1.1. Introduction1.2. Parsing Arguments from the command line (os package)1.2.1. Get the number of args1.2.2. Iterate over all arguments 1.3. Using flags package1.3.1. Parse Typed Flags1.3.2. Set flags from the script1.3.3…
Go 1.21新增的 slices 包提供了很多和切片相关的函数,可以用于任何类型的切片。
slices.Max
定义如下:
func Max[S ~[]E, E cmp.Ordered](x S) E
返回 x 中的最大值,如果 x 为空,则 panic。对于浮点数 E, 如果有元素为 NaN&am…
先安装easyjson
go get -u github.com/mailru/easyjson/在结构体上加//easyjson:json的注解
//easyjson:json
type School struct {Name string json:"name"Addr string json:"addr"
}//easyjson:json
type Student struct {Id int json:&…
go web框架 gin-gonic源码解读03————middleware(context) 今天打完游戏有空整理整理之前看的gin的中间件设计,go的中间件设计相较于前两站还是蛮简单,蛮容易看懂的,所以顺便把context也一起写一下。 中间件是现在w…
has one 与另一个模型建立一对一的关联,但它和一对一关系有些许不同。 这种关联表明一个模型的每个实例都包含或拥有另一个模型的一个实例。
例如,您的应用包含 user 和 credit card 模型,且每个 user 只能有一张 credit card。
创建model …
安装
go get go.mongodb.org/mongo-driver/mongo package mongodbexampleimport ("context""fmt""ginapi/structs""time""go.mongodb.org/mongo-driver/bson""go.mongodb.org/mongo-driver/bson/primitive""…
预加载示例 GORM允许使用 Preload通过多个SQL中来直接加载关系, 例如:
type User struct {gorm.ModelUsername stringOrders []Order
}type Order struct {gorm.ModelUserID uintPrice float64
}// 查找 user 时预加载相关 Order
db.Preload("Orders"…
目录
一、什么是channel
二、为什么要有channel
三、channel操作使用
初始化
操作
单向channel
双向channel,可读可写
四、close下什么场景会出现panic
五、总结 一、什么是channel Channels are a typed conduit through which you can send and receive …
结构体所有字段在内存当中是连续的 type Point struct {x, y int
}type Rect struct {leftUp, rightDown Point
}func main() {//r1会在内存当中有四个整数r1 : Rect{leftUp: Point{x: 1,y: 2,},rightDown: Point{x: 3,y: 4,},}//r1有四个int,在内存当中是连续分布的…
目录 数组实现加法专题题目:数组实现整数加法思路分析:数组末尾开始,逐个元素1,10就进位,!10就退出复杂度:时间复杂度 O ( n ) O(n) O(n)、空间复杂度 O ( n ) O(n) O(n)Go代码 题目:字符串加法…
这里写自定义目录标题 数字统计专题题目:数组元素积的符号思路分析:无需真计算,只需判断负数个数是奇是偶复杂度:时间复杂度 O ( n ) O(n) O(n)、空间复杂度 O ( 1 ) O(1) O(1)Go代码 题目:阶乘尾数0的个数思路分析&am…
目录 题目:在数组中找第K大的元素解法1:维护长度为k的最小堆,遍历n-k个元素,逐一和堆顶值对比后,和堆顶交换,最后返回堆顶复杂度:时间复杂度 O ( k ( n − k ) l o g k ) O(k(n-k)logk) O(k(n−…
GORM 指南 | GORM - The fantastic ORM library for Golang, aims to be developer friendly.
04_GORM查询操作_哔哩哔哩_bilibili
前置:
db调用操作语句中间加debug()可以显示对应的sql语句 1.Gorm模型定义(理解重点ÿ…
我们可以使用defer关键字延迟代码的执行,相当于我们把代码放入一个stack中,遵循last in first out的原则输出代码。
package mainimport ("fmt"
)func myDefer() {for i : 0; i < 5; i {defer fmt.Print(i)}
}func main() {defer fmt.Prin…
指针,以及标识符
1.指针
(1).基本介绍
1)基本数据类型,变量存的值,也叫值类型
2)获取变量的地址用&,比如 var num int ,获取num的地址:&num
3)指针类型&…
发现一个非常友好的工具,帮助我们回顾练习过程,设定目标,并提供丰富多样的Gopher主题练习题。
刻意练习:从新手到大师。
Carol
心理学家 Carol Dweck 做过一个实验,她找了一些十岁的孩子,随机分成两组&a…
一对多的添加有两种情况:
一种是添加用户的时候同时创建文章其次是创建文章关联已经存在的用户。
package mainimport ("gorm.io/driver/mysql""gorm.io/gorm"
)// User 用户表 一个用户拥有多篇文章
type User struct {ID int64Name …
方法
认识 Go 方法
Go 语言从设计伊始,就不支持经典的面向对象语法元素,比如类、对象、继承,等等,但 Go 语言仍保留了名为“方法(method)”的语法元素。当然,Go 语言中的方法和面向对象中的方…
上一篇文章详细介绍了 Golang 程序漏洞扫描工具 govulncheck 的使用方法,govulncheck 强大功能的背后,离不开 Go 漏洞数据库(Go vulnerability database)的支持,接下来详细讲解下 Go 漏洞数据库相关的知识。
Go 漏洞数…
最近在尝试用 LGTM 来实现 Go 微服务的可观测性,就顺便整理一下文档。
Tempo 会分为 4 篇文章:
Tempo 的架构官网测试实操跑通gin 框架发送 trace 数据到 tempogo-zero 微服务框架使用发送数据到 tempo 根据官方文档实操跑起来 tempo,中间根…
1. go hello world
创建文件夹gotest,在其中创建test1.go文件,并写入
package mainimport ("fmt"
)func main() {fmt.Println("hello world")
} 运行命令 go run test1.go 可以看到输出hello world 2. cli 命令行的使用
代码如下…
demo1:函数的几种定义方式
package mainimport ("errors""fmt"
)/*
函数的用法
跟其他语言的区别:支持多个返回值*///函数定义方法1
func add(a, b int) int {return a b
}//函数定义方法2
func add2(a, b int) (sun int) {sun a breturn s…
最近在尝试用 LGTM 来实现 Go 微服务的可观测性,就顺便整理一下文档。
Tempo 会分为 4 篇文章:
Tempo 的架构官网测试实操跑通gin 框架发送 trace 数据到 tempogo-zero 微服务框架使用发送数据到 tempo 第一篇是关于,tempo 的架构ÿ…
1.先 go get 安装 包
go get github.com/getlantern/systray2.使用的代码
func main() {fmt.Println("开始")systray.Run(onReady, onExit)
}func onReady() {systray.SetIcon(icon.Data)systray.SetTitle("Awesome App")systray.SetTooltip("Prett…
环境配置
delve仓库,含有教程:https://github.com/go-delve/delve
golang的debugging教程:https://github.com/golang/vscode-go/wiki/debugging
> go version
go version go1.20 windows/amd64> go install github.com/go-delve/de…
面试题文档下链接点击这里免积分下载
go语言入门到精通点击这里免积分下载 文章目录 Go 基础类GO 语言当中 NEW 和 MAKE 有什么区别吗?PRINTF(),SPRINTF(),FPRINTF() 都是格式化输出,有什么不同?GO 语言当中数组和切片的区别是什么…
在 Go 语言中,channel(通道)是一种用于在 goroutine 之间进行通信和同步的并发原语。它提供了一种安全且简单的方式来传递数据。
通道的详细描述和使用方法
1.定义通道: 通道是通过使用 make 函数来创建的。通道有特定的类型&am…
Golang报错mixture of field:value and value initializers
这个错误跟编程习惯(模式)有关,都知道golang 语言的编程与java /python 以及其他的编程语言相似 ,一通百通,易学万卷书。
编程中同一个结构中要保持唯一模…
在 Golang 中使用 GORM 操作 SQLite 数据库时,可以通过以下步骤设置主键自增:
首先,确保已经安装了 GORM 和 SQLite 的驱动程序。你可以使用以下命令安装它们:
go get -u gorm.io/gorm
go get -u gorm.io/driver/sqlite导入所…
1.把接口转为结构体,再塞给一个结构体的变量
package main//把接口转为结构体,再塞给一个结构体的变量
// 结构体接口.(结构体)
import "fmt"type Point struct {x inty int
}func main() {var a interface{}var point Point Point{1, 2}a …
1. 一个简单的例子
测试文件以 _test.go 结尾
example/|--calc.go|--calc_test.go假如 calc.go 的代码如下:
package mainfunc Add(a int, b int) int {return a b
}func Mul(a int, b int) int {return a * b
}那么 calc_test.go 中的测试用例可以这么写&#…
安装beego
安装bee工具
beego文档
# windos 推荐使用
go install github.com/beego/bee/v2master
go get -u github.com/beego/bee/v2masterwindows使用安装bee工具时碰到的问题; 环境配置都没有问题,但是执行官网的命令:go get -u github…
Go 语言天生支持并发编程,提供了丰富的原语和工具来编写并发程序。Goroutine 是 Go 语言中的轻量级执行单位。它们是由 Go 运行时(runtime)管理的,并且能够在单个线程上运行成千上万个 Goroutine。创建 Goroutine 非常高效&#x…
Build Error: go build -o c:\Users\13283\Desktop\godemo\__debug_bin3410376605.exe -gcflags all-N -l . go: go.mod file not found in current directory or any parent directory; see go help modules (exit status 1) 原因分析:
go 的环境配置问题。与 gol…
代码在执行的过程中可能因为一些逻辑上的问题而出现错误
func test1(a, b int) int {result : a / breturn result
}
func main() {resut : test1(10, 0)fmt.Println(resut)
}panic: runtime error: integer divide by zero goroutine 1 [running]: …
一 go run
编译运行一个main 包(package),常用的运行方式如下:
go run . go run hello go run 后面接路径,该路径(不含子路径)下所有的go源文件都属于main包。
go run filename1 filename1 …
最近刚开始学习go,看了几个开源项目,遂下载好朋友的go开源项目,想着coding first,我得先跑起来,结果居然卡在依赖上。就像下图: 真的是头疼,反复执行 go mod tidy,发现本地库中也能下…
查找关联 // User 拥有并属于多种 language,user_languages 是连接表
type User struct {gorm.ModelLanguages []Language gorm:"many2many:user_languages;"
}type Language struct {gorm.ModelName string
}
查找所有匹配的关联记录
db.Model(&us…
计时器(Timer)
在 Go 中,可以使用 time 包提供的计时器(Timer)来执行定时任务。计时器允许你在指定的时间间隔后执行某个操作。 time.Timer结构表示一个计时器,它会在指定的时间段后触发单次操作。 创建计…
为什么选择 Go 语言来完成这么大一个项目呢?我们不妨回到 Go 语言的源头看一看。
Go 语言的初步设想始于 2007 年,当时 Go 语言的三位创始人是想通过开发一种新型的语言来解决 Google 在软件开发中面临的问题:
多核硬件架构;超大…
添加关联 为 many to many、has many 添加新的关联;为 has one, belongs to 替换当前的关联
db.Model(&user).Association("Languages").Append([]Language{languageZH, languageEN})db.Model(&user).Association("Languages").Append…
从 1.20.x 开始,GORM 为不同的数据库提供兼容的 Upsert 支持( Upsert-On-Conflict )
// U
pdate columns to new value on id conflict
DB.Clauses(clause.OnConflict{Columns: []clause.Column{{Name: "id"}}, // key columeD…
0x1 Reading Paper
Raft协议感觉目标很简单:保证分布式系统的一致性和可用性,在阅读时,我联想到之前看的ARIES论文,感觉思维有很多共通之处,比如如何通过非易失性存储来保证持久性。但是ARIES中是单个机器崩溃导致内存…
使用的Go库
gonum.org/v1/plotimage/color
待绘图函数
直接使用三角函 s i n sin sin:
func f(x float64) float64 {return math.Sin(x)
}绘图过程
1 创建一个绘图 p : plot.New()assert.NotNil(t, p)p.Title.Text "Function Image"p.X.Label.Text "X&qu…
中间件编程jwt认证
在不改变原有方法的基础上,添加自己的业务逻辑。相当于grpc中的拦截器一样,在不改变grpc请求的同时,插入自己的业务。
简单例子
func Sum(a, b int) int {return a b
}func LoggerMiddleware(in func(a, b int) int) f…
连接mysql数据库 安装依赖 go get github.com/go-sql-driver/mysqlfunc LinkMySQL(){DB,_ : sql.Open("mysql","root:123456tcp(127.0.0.1:3306)/webgo_accout")//设置数据库最大连接数DB.SetConnMaxLifetime(100)//设置上数据库最大闲置连接数DB.SetMaxId…
一、环境变量设置
go env -w GO111MODULEon
go env -w GOPROXYhttps://goproxy.cn,https://goproxy.io,direct 二、goland开启 go mod 三、go mod 使用
在go.mod文件中声明三方包地址&版本号即可,如下: 开发工具goland会自动解析go.mod文件&#x…
文章目录 高维数组切片指针 go语言教程:安装入门➡️for循环
高维数组
前面已经讲到过基本的数组声明方式
var a [3]int // a是长度为3的数组,内容为0
var b [3]int{1, 2, 3}
c : [3]int{1,2,3}由于数组只需要内部元素有着相同类型,所以自…
回顾
「容器管理系统」 1. 开篇:框架选型和环境搭建
在第一篇开篇文章中,咱们已经选用了Gin框架和Docker的版本,这一节咱们需要初始化一些基础配置:
DB 配置日志监控配置文件 toml热重载 Air
DB 配置
链接 DB 库咱们使用的是…
今天分享的内容是 Go HTTP 调用。如果本文对你有帮助,不妨点个赞,如果你是 Go 语言初学者,不妨点个关注,一起成长一起进步,如果本文有错误的地方,欢迎指出!
前言
上篇文章 Go HTTP 调用&#…
RSA算法广泛应用与数据加密(比如 SSL 传输层加密),数字签名(比如支付宝的支付签名)。
1、加密解密
// encrypts the given message with RSA-OAEP
func f1() {// random 用来生成随机的素数rsaPriviteKey, err : rsa…
在 Go 语言中,select 是一种用于处理多个通道操作的控制结构。它可以用于在多个通道之间进行非阻塞的选择操作。
select 语句由一系列的 case 子句组成,每个 case 子句表示一个通道操作。select 语句会按照顺序依次检查每个 case 子句,并执行…
目录 交叉编译参数说明CGO_ENABLEDGOOS : 目标操作系统【darwin、linux、windows】GOARCH :目标架构【386、amd64、arm】 Mac 下编译,Linux / Windows 下执行Linux 下编译,Mac / Windows 下执行Windows 下编译,Mac / Linux 下执行…
sync.Once 是 Go 语言标准库 sync 包提供的一个类型,它用于确保一个函数只会被执行一次,即使在多个 goroutine 中同时调用。
sync.Once 包含一个 Do 方法,其签名如下:
func (o *Once) Do(f func()) Do 方法接受一个函数作为参数…
文章目录 两数之和 (Two Sum)解题拓展——SolutionSolution 1: Brute ForceCodeLanguage: Go 两数之和 (Two Sum) Given an array of integers nums and an integer target, return indices of the two numbers such that they ad…
Go 的数据结构
Go 内置的数据结构并不多。工作中,我们最常用的两种数据结构分别是 slice 和 map,即切片和映射。 其实,Go 中也有数组,切片的底层就是数组,只不过因为切片的存在,我们平时很少使用它。 除了…
问题现象
服务中使用了k8s client-go,日志里频繁出现如下异常信息,且部分节点出现NotReady状态。
failed to list *vI. Endpoints: Too many requests: Too m
any requests, please try again later. 关于k8s Apiserver的限流 通过总量限流,…
文章目录 安装包AdhocPlaybookExecuteDefaultExecute自定义执行器 Optionsansible adhoc and ansible-playbook common options Stdout CallbackResultsTransformersDefaultJSONManage JSON output 示例 Go ansible是一个用于从Golang应用程序运行ansible剧本或ansible命令的包…
Go 语言中,包(Package)的目的和其他语言中的库或模块是一样的,支持模块化、封装、单独编译和重用。 ——《The Go Programming Language》 有时候需要自己写一个包方便多次使用,但是在导入自己写的包时遇到了问题。我以…
🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…
[go 反射] 结构体
本文你将了解
不同类型结构体直接通过反射拷贝通过反射调用结构体方法常踩的坑点
不同类型结构体直接通过反射拷贝
普通的拷贝
type One struct{Name stringAge int
}
var one OneOne{"jim",20}
var one_copy Oneone//拷贝完成反射拷贝
type …
什么是Panic?
在 Go 程序中处理异常情况的惯用方法是使用errors.。errors足以应对程序中出现的大多数异常情况。
**但有些情况下,程序在出现异常情况后无法继续执行。在这种情况下,我们使用panic提前终止程序。当函数遇到恐慌时,…
Sync
Go 语言作为一个原生支持用户态进程(Goroutine)的语言,当提到并发编程、多线程编程时,往往都离不开锁这一概念。锁是一种并发编程中的同步原语(Synchronization Primitives),它能保证多…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
上文我们讲了如何进行Go程序的打包发布,本文讲述GO模块引入指令Go Mod的使用
go mod 是什么?
go modules 官方定义为:
模块是相关Go包的集合。modules是源代码交换和版本控制的单元。 go命令直接支持使用modules,包括记录和解析…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
1、时间和日期的函数,需要导入 time 包,所以你获取当前时间,就要调用 Now 函数
package main
import ("fmt""time"
)func main(){//时间和日期的函数,需要到入time包,所以你获取当前时间…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
**
1 安装了新版本的go后 为什么go version 还是旧版本?
**
如果你已经按照上述步骤安装了新版本的 Go,但 go version 命令仍然显示旧版本,可能是因为你的环境变量设置不正确或未正确生效。你可以尝试以下方法来解决问题:
重新…
Copier I am a copier, I copy everything from one to another Copier是golang实现的,实现不同数据结构之间数据复制的工具包
github地址
使用方法
以User和Employee之间相互复制为例 使用的版本为 v0.3.5
入门
package mainimport ("fmt""git…
近年来,Go 编程语言的流行度迅速增加。Go 最初由 Google 开发,迅速成为后端开发中最受欢迎的语言之一,特别是在分布式系统和微服务的开发中。本文将讨论为什么 Go 是后端开发的未来。
Go 简介
Go,又称为 Golang,是由…
如果一个变量应该有一个固定的、不能改变的值,你可以使用const关键字。
const关键字将变量声明为"常量",这意味着它是不可改变和只读的。
语法
const CONSTNAME type value
声明常量
声明常量的示例:
package main
import (…
Go 一、Go语言中的变量和常量1、Go语言中变量的声明2、如何定义变量方式1:方式2:带类型方式3:类型推导方式定义变量方式4:声明多个变量总结 3、如何定义常量4、Const常量结合iota的使用 二、Golang的数据类型1、概述2、整型2.1 类…
您是否想过 Go 与 Python 之间的主要区别是什么?随着对软件开发人员的需求不断增加,选择哪种编码语言可能会很困难。
在此,我们将从六个方面对比Go和Python,探讨 Go 和 Python之间的差异。我们将讨论它们的特点、优缺点,以便…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
引言
目标检测是计算机视觉领域的重要任务,它不仅可以识别图像中的物体,还可以标记出物体的位置和边界框。YOLO(You Only Look Once)是一种先进的目标检测算法,以其高精度和实时性而闻名。本文将介绍如何使用Golang实…
字符串重要概念 根据Go语言官方的定义: In Go, a string is in effect a read-only slice of bytes. 意思是Go中的字符串是一组只读的字节切片(slice of bytes),每个字符串都使用一个或多个字节表示(当字符为 ASCII 码…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
Go中使用logrus框架将日志保存在文件和控制台输出
安装
go get github.com/sirupsen/logrus
go get github.com/lestrrat-go/file-rotatelogs
go get github.com/rifflock/lfshook完整代码
import ("fmt"rotatelogs "github.com/lestrrat-go/file-rotatelogs…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
在比较一段长的时间里,Go 的错误处理已经没有什么特别的进展和新改进了。看着已经到了瓶颈期。
今天在 GitHub 上学习时,看到 Go 社区里有人提了个错误处理的优化提案《proposal: Go 2: Error-Handling Paradigm with !err Grammar Sugar》,…
文章目录 Swagger安装使用用法项目demoSwagger注释用法通用API信息 swag命令行参数swagger路由配置 Swagger
安装
go get 安装可执行文件需要配合 GOPATH 模式工作。 go get github.com/swaggo/swag/cmd/swag 因为从 Go 1.17 开始,在 go mod 模式下通过 go get 下…
编写最简单的命令行工具
用户输入bufio
使用go语言编写最简单的命令行工具
mkdir hello-cli-demo
cd hello-cli-demo
# 查看环境变量
go envgo mod初始化
go mod init gitcode.com/m打开vscode,创建main.go
package mainimport ("fmt""bufio&qu…
Go语言反射reflect
一、引入
先看官方Doc中Rob Pike给出的关于反射的定义:
Reflection in computing is the ability of a program to examine its own structure, particularly through types; it’s a form of metaprogramming. It’s also a great source of …
Rust vs. Go,在2024年,应该选择哪一个?或者说应该选择哪种语言——GoLang还是Rust。这可能是许多程序员在选择语言时考虑的一个问题。选择理想的编程语言被视为在这个不断变化的环境中取得成功的重要抉择。
GoLang和Rust是当今使用的最年轻的…
介绍:Go(又称 Golang)是由 Google 的 Robert Griesemer,Rob PGo(又称 Golang)是由 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。它在2009年11月10…
go 语言中怎么实现分布式系统?
在Go语言中实现分布式系统需要考虑以下几个方面:
通信协议:在分布式系统中,各个节点需要通过网络进行通信。Go语言提供了丰富的网络编程库,如net/http、net/rpc等,可以方便…
// 变量
var a, b, c 8, 2.3, "hello"
var d float64;
e : 6var A []int;
var B [10]int;
C : [10]int{1, 2, 3, 4}
for i : 0; i < len(B); i {}
for _, value : range C {}
D make([]int, 3)
// len 4, cap 10, 扩容方式 cap*2
E : make([]int, 4, 10)
E …
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
如何得到一个 map 占用了多少内存
go get github.com/520MianXiangDuiXiang520/MapSizepackage mainimport ("fmt""github.com/520MianXiangDuiXiang520/MapSize"
)func main() {m : make(map[int]struct{})for i : 0; i < 100; i {m[i] struct{}{}}f…
目录
文章目的是什么
环境介绍
Linux 环境下 docker 部署 go gin 详细步骤
部署 gin 文章目的是什么
假设我们学习了 go 语言,在 Linux 上安装了 go 相关的程序,也能直接运行,使用以下命令: go run main.go 假如代码是这样的…
解决docker alpine /bin/sh: ./main: not found
golang中编译之后的二进制文件部署在alpine镜像中出现了not found问题解决这种情况是因为动态链接库位置错误导致的,alpine镜像使用的是musl libc而不是gun libc。因而动态链接库的位置不一致。在基础镜像内执行&…
在 Go 中访问 MySQL 数据库并进行读写操作通常需要使用第三方的 MySQL 驱动。Go 中常用的 MySQL 驱动有 github.com/go-sql-driver/mysql 和 github.com/go-xorm/xorm 等。
一,通过执行sql语句来和数据库交互
安装 MySQL 驱动:
在终端中执行以下命令,…
Timer:时间到了,执行只执行1次Ticker:时间到了,多次执行
Timer
基本使用
:::details
func main() {/*** 1. 创建定时器**//**NewTimer creates a new Timer that will send the current time on its channelafter at least du…
windows
下载依赖包
go get github.com/swaggo/swag/cmd/swag编译swag cd $GOPATH\pkg\mod\github.com\swaggo\swagv1.16.2\cmd\swagps: go env 获取 GOPATH位置
go installps: 此时 $GOPATH\bin下出现了 swag.exe
项目根目录下执行swag 初始化
swag init生成结果
client-go代码在集群内部使用 创建目录并初始化项目
#创建目录
mkdir client-go-examples
cd client-go-examples
#初始化项目
go mod init incluster
mkdir incluster
cd incluster
#创建文件
touch main.gomain.go内容
//client-go链接apiSeriver
//获取依赖
//go get k8s.…
go get
go get 它会执行两个操作 第一个, 是先将远程的代码克隆到Go Path的 src 目录那二个, 是执行go install命令 那如果指定的包可以生成二进制文件那它就会把这个二进制文件保存到这个 Go Path 的bin目录下面这是 go install 命令执行的操作 如果只需要下载包,…
:::details 给你一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a b c 0 ?请你找出所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1: …
依赖注入(Dependency injection)
依赖注入和控制反转恰恰相反,它是一种具体的编码技巧。我们不通过 new 的方式在类内部创建依赖类的对象,而是将依赖的类对象在外部创建好之后,通过构造函数、函数参数等方式传递(或注入ÿ…
反射reflect
一、引入
先看官方Doc中Rob Pike给出的关于反射的定义:
Reflection in computing is the ability of a program to examine its own structure, particularly through types; it’s a form of metaprogramming. It’s also a great source of confus…
随着互联网的发展,数据传输的安全性变得越来越重要。HTTPS,全称为安全超文本传输协议(Hypertext Transfer Protocol Secure),是互联网上应用最广泛的安全传输协议。在Linux系统中处理HTTPS请求,通常涉及到配…
if else 建议条件不用()包裹,if{}不能省略,{}中的{必须紧靠着条件 go语言中没有while循环,可以通过for 代替 age : 30if age > 18 {fmt.Println("我是大人")}//另一种写法if age : 99; age > 18 {fmt.Printf("年龄是%v&…
简介 Go 语言和Java语言一样都是一门需要编译才能运行的编程语言,也就是说代码在运行之前需要通过编译器生成二进制机器码。 Go 语言编译器的源代码在 src/cmd/compile 目录中,目录下的文件共同组成了 Go 语言的编译器,而编译过程是一个多阶段…
Go 中常用的切片 slice 数据结构是动态数组,切片长度并不固定,在容量不足的时候会自动扩容。
切片实质上是对一个底层数组的抽象视图,由 Go 运行时维护。在运行时,切片由如下的 SliceHeader 结构体表示,其中 Data 字段…
在我们看一些使用反射的代码的时候,会发现,reflect.ValueOf 或 reflect.TypeOf 的参数有些地方使用的是指针参数,有些地方又不是指针参数, 但是好像这两者在使用上没什么区别,比如下面这样:
var a 1
v1 :…
在 golang 之中 any 类型,从字面意思上看是任意类型,这很类似我们在 C#、C 之中的任意指针类型 void*(原生),C# 之中诡异的 object。 any 是一个接口类型,其语法声明为:
// any is an alias fo…
在 Go 语言中,要实现烟花秀效果可以使用 github.com/fogleman/gg 包进行绘图。以下是一个简单的例子:
首先,确保你已经安装了(有时候需要梯子才可以安装) github.com/fogleman/gg 包:
go get -u github.c…
本篇文章是 Go 标准库 flag 包的快速上手篇。
概述
开发一个命令行工具,视复杂程度,一般要选择一个合适的命令行解析库,简单的需求用 Go 标准库 flag 就够了,flag 的使用非常简单。
当然,除了标准库 flag 外&#x…
文章目录 一、配置 Option1.1 options1.2 funcitonal options 一、配置 Option
1.1 options
https://commandcenter.blogspot.com/2014/01/self-referential-functions-and-design.html
I’ve been trying on and off to find a nice way to deal with setting options in a…
参考:
Go 汇编函数 - Go 语言高级编程
Go 嵌套汇编 - 掘金 (juejin.cn) 前言:
Golang 适用 Go-Runtime(Go 运行时,嵌入在被编译的PE可执行文件之中)来管理调度协同程式的运行。 Go 语言没有多线程(MT&a…
在Go语言中,使用Gin框架实现文件下载功能相对简单。以下是一个简单的示例,演示了如何使用Gin来处理文件下载请求: 首先,确保你已经安装了Gin框架。如果没有安装,可以通过以下命令安装:
go get -u github.c…
1. GoLang
1.1 特点介绍
Go 语言保证了既能达到静态编译语言的安全和性能,又达到了动态语言开发维护的高效率,使用一个表达式来形容 Go 语言:Go C Python , 说明 Go 语言既有 C 静态语言程序的运行速度,又能达到 Python 动态语…
基本在所有的编程语言中,都有 map 这种数据结构,Go 语言也不例外。 我们知道 Go 是一门对并发支持得比较好的语言,但是 map 并不支持并发读写。 比如,下面这种写法是错误的:
var m make(map[int]int)
var wg sync.Wa…
对 Golang 程序进行性能优化,可以在提升业务收益的同时,起到降低成本的作用。
Benchmark 示例
func BenchmarkConvertReflect(b *testing.B) {
var v interface{} int32(64)
for i:0;i<b.N;i{ f : reflect.ValueOf(v).Int()if f ! int64(64){b.Err…
写算法题的时候突然想到,为什么循环内定义变量不会算作是重复定义,以及变量作用域问题,为此,进行了一次探索 c:
代码:
#include <stdio.h>
int main()
{int a 0;int* b &a;for (int i 0; i …
1.泛型
泛型是一种独立于所使用的特定类型的编写代码的方法。使用泛型可以编写出适用于一组类型中的任何一种的函数和类型。
1.1 为什么需要泛型
func reverse(s []int) []int {l : len(s)r : make([]int, l)for i, e : range s {r[l-i-1] e}return r
}fmt.Println(reverse…
首先下载air库
go install github.com/cosmtrek/air之后你需要去找到库下载的地方,若使用的是go mod可以使用命令
go env GOPATH找到下载库的位置 进入后,有bin,pkg目录,进入bin目录,你能看到air.exe文件 这时候将此…
嗨,大家好!本文是系列文章 Go 小技巧第十篇,系列文章查看:Go 语言小技巧。 在 Go 中,结构体主要是用于定义复杂数据类型。而 struct tag 则是附加在 struct 字段后的字符串,提供了一种方式来存储关于字段的…
go AOP 实现
使用Go语言的反射机制和函数类型实现AOP,通过在需要切入的函数前后添加额外的逻辑代码实现AOP
package mainimport ("errors""fmt""log""reflect"
)// User 结构体表示一个用户
type User struct {ID intN…
什么是sync.Once
sync.Once 是 Go 语言中的一种同步原语,用于确保某个操作或函数在并发环境下只被执行一次。它只有一个导出的方法,即 Do,该方法接收一个函数参数。在 Do 方法被调用后,该函数将被执行,而且只会执行一…
go 内存二进制数据操作
go 内存二进制数据直接操作
以数字类型为例
int(linux/macos 为int32,windows 为int64). 如果不清楚可以使用unsafe.Sizeof函数来查看(函数出来的值*8就是int位数)
若不使用内存二进制数据操作,你需要在每次获取数字内容时调用binary.Big…
思路
将 C 库包装成 C 库 -> golang 通过 cgo 调用 C 库
C 相关文件
目录列表
include/ some.h C 库头文件some_wrapper.h < 用于将 C 库包装成 C 库的头文件 lib/ libsome.a C 库 src/ some_wrapper.cpp < 用于将 C 库包装成 C 库的源码文件
源码示例
some.h…
二、进阶使用
性能提升——协程
GoRoutine
go f();一个 Go 线程上,可以起多个协程(有独立的栈空间、共享程序堆空间、调度由用户控制)主线程是一个物理线程,直接作用在 cpu 上的。是重量级的,非常耗费 cpu 资源。协…
Golang 基础 Go Modules包管理
在 Go 项目开发中,依赖包管理是一个非常重要的内容,依赖包处理不好,就会导致编译失败,本文将系统介绍下 Go 的依赖包管理工具。
我会首先介绍下 Go 依赖包管理工具的历史,并详细介绍下…
在 Go 语言中,sqlx 包是一个用于数据库操作的库,它建立在标准库的 database/sql 包之上,并提供了一些额外的功能,以简化和增强与数据库的交互。sqlx 的目标是通过提供更方便的 API 和一些附加功能来改善在 Go 中进行 SQL 数据库查…
网上的grpc教程都或多或少有些老或者有些问题,导致最后执行生成文件时会报很多错。这里给出个人实践出可执行的编译命令与碰到的报错与解决方法。(ps:本文代码按照煎鱼的教程编写:4.2 gRPC Client and Server - 跟煎鱼学 Go (gitbook.io)&…
go c 通过内存原始二进制内容直接传递结构体
传统数据传输通常通过半结构化数据(json/yaml/xml…)来交换信息。但是go 支持 二进制数据层面支持c 结构体。带来的好处就是相较于半结构化数据类型来说更快(在go中,解析和生成json/yaml/xml…到结构体都会经过一层反射…
经过前面的文章,已经完成了 Web 系统基础功能的搭建,也实现了 API 接口、HTML 模板渲染等功能。接下来要做的就是使用 Swagger 工具,为这些 Api 接口生成一份好看的接口文档。
一、写注释
注释是 Swagger 的灵魂,Swagger 是通过…
gorm day4
高级查询 高级查询
智能选择字段
GORM允许通过Select方法选择特定的字段,如果你在应用程序中经常使用此功能,你也可以定义一个较小的结构体,以实现调用API时自动选择特定的字段,例如:
type User struct …
前言
大家好,这里是白泽。 《Go语言的100个错误以及如何避免》 是最近朋友推荐我阅读的书籍,我初步浏览之后,大为惊喜。就像这书中第一章的标题说到的:“Go: Simple to learn but hard to master”,整本书通过分析100…
文章目录 1.1 Go 语言的安装与环境配置1.1.1 基础知识讲解案例 Demo:简单的 Go 程序 1.1.2 重点案例:搭建一个 Go Web 服务准备工作步骤 1:创建项目目录步骤 2:编写 Web 服务代码步骤 3:运行你的 Web 服务步骤 4&#…
Go管理工具
早期 Go 语言不使用 go module 进行包管理,而是使用 go path 进行包管理,这种管理方式十分老旧,两者最显著的区别就是:Go Path 创建之后没有 go.mod 文件被创建出来,而 go module 模式会创建出一个 go.mod…
嗨,大家好!我是波罗学。本文是系列文章 Go 技巧第十六篇,系列文章查看:Go 语言技巧。 Go 中有一个特别的 init() 函数,它主要用于包的初始化。init() 函数在包被引入后会被自动执行。如果在 main 包中,它也…
1. Tour of Go
网站地址:tour.golang.org
网站介绍:Tour of Go是一个关于Go语言特性的交互式游览和教程
2. Go by Example
网站地址:gobyexample.com
网站介绍:Go by Example是一个通过一系列可执行代码实例来学习Go语言的优…
使用 ctx.Value 从 context 读取数据
// ValueFromIncomingContext returns the metadata value corresponding to the metadata
// key from the incoming metadata if it exists. Key must be lower-case.
//
// # Experimental
//
// Notice: This API is EXPERIMENTAL and…
不同项目之前,通过http访问,进行数据沟通
先设定一个接口,确认外部能访问到
PHP写一个接口
public function ceshi_return()
{$data $this->request->param();$id $data[id];$res Db::name(user)->field(id,status,price,name)->where([id>$id])->find…
1.初学Go就在windows上写了个"Hello,World!",在windown上编译了一下,生成了可执行文件。运行无问题
go build text.go
.\text.exe
Hello,World!2.但是按照网上的教程进行生成linux的可执行文件时出现报错
set CGO_ENABLED0
set GOOSlinux
set GOARCHam…
来源于fullstack,绿色为重点
1. Go语言是什么
Go 是一种通用编程语言,设计初衷是为了进行系统编程。它最初是由 Google 的 Robert Griesemer、Rob Pike 和 Ken Thompson 在 2007 年开发的。Go 语言是强类型且静态类型的,它内置了对垃圾回收…
package mainimport "fmt"// 定义一个存储器接口:支持mysql存储、redis存储
type StorageManager interface {insert(data string) int // 增加update(id int, data string) int // 更新
}// 实现一个Mysql存储器
type Mysql struct{}func (mysql…
目录
每次迭代都创建新变量
支持整数类型循环
小结 在 Go 语言中,for 循环是实现迭代的主要方式。Go 中的 for 循环非常灵活,有多种使用方式,包括传统的三部分 for 循环、类似于其他语言中的 while 循环以及迭代集合的 range 循环。
在 1…
这个警告信息指出 GOPATH 环境变量被设置为与 GOROOT 相同的值。GOPATH 环境变量用于指定 Go 工作区的位置,而 GOROOT 指定 Go 安装的位置。将 GOPATH 设置为 GOROOT 表示 Go 工作区和 Go 安装位置位于同一目录,这是不推荐的。为了解决此问题,…
Go,也被称为 Golang,是一门由 Google 设计的开源编程语言。它旨在提供高效的开发体验,同时具备并发性、内存安全和简洁性。本篇博客将介绍 Golang 的基本语法和一些示例,帮助读者快速入门这门令人着迷的语言。
简介
Go 语言的设…
场景:有多张表,依据其中一张表的自增字段取得 id 值作为对象ID,然后使用这个Id插入到其他它表中。
如下一张 MySQL 的 innodb 表 X,用 go 编写程序,不指定 a 的值,指定 b 和 c 的值,往表 X 插入…
vscode工具,golang-dlv 调试,爆出:
GOPATH set to GOROOT (/usr/local/go) has no effect解决方案:环境配置PATH,需要包含GOPATH和GOROOT/bin 工具箱默认放在GOPATH目录下。
export GOROOT/usr/local/go
export GOPA…
编程笔记 Golang基础 045 math包 一、math包主要功能常量:函数:数值运算:三角函数:对数函数:随机数相关: 二、示例代码一三、示例代码二小结 Go 语言的标准库 math 提供了一系列基础数学函数和常量…
[TOC](编程笔记 Golang基础 041 包(package)) Go 语言中的包(package)是其核心组织单元,用于实现模块化编程。本节是 Go 语言中包的应用与管理的说明。 一、包的基本概念: 包定义: 在每个 Go 源码文件的顶部࿰…
如何降低版本 假设go版本go.mod: go 1.16运行项目, 查看运行报错,根据报错信息,一条一条解决
go run main.go错误:
/home/server1/go/pkg/mod/google.golang.org/grpcv1.58.2/internal/buffer/unbounded.go:92:34: undefined: any类似这样的…
Channel整体结构
源码位置
位于src/runtime下的chan.go中。 Channel整体结构图
图源:https://i6448038.github.io/2019/04/11/go-channel/ Channel结构体
type hchan struct {qcount uint // total data in the queuedataqsiz uint // si…
go程序中命令行参数获取
go里面程序的参数是存储在os.Args切片中的,下面是一个示例
func main() {fmt.Println("命令行参数个数:", len(os.Args))for i, v : range os.Args {fmt.Printf("arg[%v] value:%v", i, v)}
}使用flag包指定命令行参数…
由于底层依赖升级了,那我们也要跟着升,go老版本已经不足满足需求了,必须要将版本升级到1.22.0以上 查看当前Go版本
命令查看go版本
go version[rootlocalhost local]# go version
go version go1.21.4 linux/amd64
[rootlocalhost local]# …
结构体如下type CreateParams struct {AId uint json:"a_id" binding:"required,"BId uint json:"b_id" binding:"required,"}
运行时报错:Invalid validation tag on field AId
原因:在binding中&#…
runner安装
runner时gitlab CI/CD得以实现的基础。
gitlab-runner安装
centos安装
# Replace ${arch} with any of the supported architectures, e.g. amd64, arm, arm64
# A full list of architectures can be found here https://gitlab-runner-downloads.s3.amazonaws…
背景介绍
fasthttp was designed for some high performance edge cases. Unless your server/client needs to handle thousands of small to medium requests per second and needs a consistent low millisecond response time fasthttp might not be for you. For most ca…
一、新建运行文件 运行文件一定要引入 package main ,下面代码右键运行即可 package main
func main() {println("你好世界")
}二、导入第三方库依赖 找到项目的go.mod,在mod文件文件夹打开终端运行 go get github.com/google/uuid网络有墙则先…
由于rsa加密需要公钥长度大于消息长度,消息太长时经常会报错Message too long for RSA 采用分块的方法,将消息分成更小的块,解决这个问题
package xrsa
import ("encoding/pem""encoding/base64""crypto/x509"…
Go 语言条件语句: 在 Go 语言中,条件语句用于根据不同的条件执行不同的代码。Go 语言提供了两种条件语句:if 语句和switch 语句。
if语句
if由一个布尔表达式后紧跟一个或多个语句组成。
语法
Go 编程语言中 if 语句的语法如下ÿ…
类型转换
在 go 语言中,类型转换是显式的,不会自动转换 go
复制代码
func main(){ i : 100 var f float64 f float64(i) }
string 转换成 int 需要借助 strconv 包
使用 strconv.Atoi 函数将 string 转换成 int,转换后它会输出两个值&…
1.场景
要写一个网络通信的,服务器一直监听并解析请求。客户端接收到java端后每次都用一个新的Encoder发送一个数据结构给服务器的Decoder。导致报错:gob: duplicate type received
2. 分析
我的代码报错“gob: duplicate type received”,…
给定两个字符串 order 和 s 。order 的所有字母都是 唯一 的,并且以前按照一些自定义的顺序排序。
对 s 的字符进行置换,使其与排序的 order 相匹配。更具体地说,如果在 order 中的字符 x 出现字符 y 之前,那么在排列后的字符串中…
1、开发编辑器
Go 采用的是UTF-8编码的文本文件存放源代码,理论上使用任何一款文本编辑器都可以做 Go 语言开发,这里推荐使用 VS Code 和 Goland。
VS Code 是微软开源的编辑器,而 Goland 是 jetbrains 出品的付费IDE。GoLand 开发工具时收…
为什么需要泛型
比如现在实现一个add函数,支持int累加
func add(x, y int) int {return x y
}现在新增一个float32累加,如下实现
func add(x, y float32) float32 {return x y
}再要支持其它类型比如float/string等,应该如何做呢&#x…
可以使用的go版本freed调试代码 可以通过udp发送和接收数据 What is freeD? freeD is a very simple protocol used to exchange camera tracking data. It was originally developed by Vinten and is now supported by a wide range of hard- and software including Unreal…
文章目录Go 语言程序设计极简教程Go 语言程序设计极简教程第一章:Go 语言基础1.1 Go 语言简介1.2 Go 语言安装1.2.1 下载安装包1.2.2 安装 Go 语言1.3 Go 语言环境变量第二章:Go 语言基础语法2.1 Go 语言基本语法2.1.1 变量定义2.1.2 函数定义2.1.3 数据…
1. 循环语句range
Golang range类似迭代器操作,返回 (索引, 值) 或 (键, 值)。
for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环。格式如下:
for key, value : range oldMap {newMap[key] value
}1st value2nd valuestringinde…
上篇请移步到Go语言之 下载安装及第一个代码_水w的博客-CSDN博客 目录
一、下载安装以及配置go环境
1 下载安装go
2 配置go环境
二、安装配置git
一、在vscode上开发golang
1 配置
2 编写代码
解决报错:go: go.mod file not found in current directory or …
环境
环境:mac m1,go version 1.17.2, goland, mysql
安装gorm
第二节学习了在gin中使用go的原生SQL进行操作,这节学习一下使用orm。 go的orm包有很多,gorm是使用较多较广的,所以我们就用gor…
go语言中的slice,相当于java中的ArrayList,底层都是数组实现的。
一、slice声明
1. 先声明,然后再使用
var s []int
s append(s, 1)
fmt.Println(s)
2.直接初始化 s : []int{1, 2, 3}s append(s, 4)fmt.Println(s)
3.使用make声明并且初始化&…
Golang连接Oracle 需要安装Oracle Full Client或Instant Client
Oracle的Instant Client套件下载地址
#选择Instant Client for Linux x86-64下载包如下:
instantclient-basic-linux.x64-21.1.0.0.0.zip
instantclient-sqlplus-linux.x64-21.1.0.0.0.zip
instantclient-sdk-l…
原文地址: The Next Step for Generics - The Go Blog https://blog.golang.org/generics-next-step 介绍
自从我们上次写下关于在Go中加入泛型的可能性的文章以来,已经快一年了。现在是该更新的时候了。
设计的更新
我们一直在继续完善泛型设计草案。…
Mac Go (Hello World) 文章目录Mac Go (Hello World)1. Go下载2. 配置环境变量2.1 打开环境变量配置文件(如果没有就新建一个)2.2 向配置文件中添加Go的环境变量2.3 使配置文件生效2.4 检查是否配置成功3…
对象就是程序的数据结构,关系是数据库。就是将程序的数据结构与数据库表对应起来。
在GORM是Go语言的ORM框架,将go的数据结构转化为数据库表,例如将结构体转化为数据库表。
引入gorm框架
远程下载gorm框架
go get -u gorm.io/driver/mysq…
动手点关注干货不迷路前言我们知道 Go 语言的三位领导者中有两位来自 Plan 9 项目,这直接导致了 Go 语言的汇编采用了比较有个性的 Plan 9 风格。不过,我们不能因咽废食而放弃无所不能的汇编。1、 Go 汇编基础知识1.1、通用寄存器不同体系结构的 CPU&…
1.1什么是Go语言 1.2Go语言入门 环境 1.3基础语法 1.3.1变量 var name"value" 自己推断变量类型; 也可以显式类型 var c int 1 name: type(value) 常量: const name "value" g : a"foo" 字符串拼接 1.3.2 if else {}花括号…
目录
147. 对链表进行插入排序 Insertion Sort List 🌟🌟
148. 排序链表 Sort List 🌟🌟
149. 直线上最多的点数 Max Points On A Line 🌟🌟🌟
150. 逆波兰表达式求值 Evaluate Reverse …
文章目录 go test工具测试函数测试函数的格式测试函数示例 测试组子测试测试覆盖率基准测试基准测试函数格式基准测试示例性能比较函数重置时间并行测试 Setup与TearDownTestMain子测试的Setup与Teardown 示例函数示例函数示例 go test工具
Go语言中的测试依赖go test命令。编…
控制平面 : 管理集群中的工作节点和 Pod 节点 : 一组工作机器,称为节点,每个集群至少有一个节点 pod :节点会托管pod ,pod是所有业务类型的基础,也是K8S管理的最小单位级,它是一个或…
本地Golang升级到1.18后,发现原本写的一些代码在Goland中出现了一些红色的波浪线,将鼠标移到错误提示上,有如下的显示:
Cannot use err (type error) as the type any
复制 image
源代码:
conn, err : listener.Ac…
大家好,我是煎鱼。 之前写过一篇关于 Go WebAssembly 的相关文章 《一分钟搞明白!快速掌握 Go WebAssembly》,今天带来一则新消息。 想着 Go 过去了那么多年了,只在 Go1.11 支持了 WebAssembly1.0 的部分功能(js/sysca…
Go GUI项目实战:基于fyne开发简易MarkDown fyne是一个用go编写的GUI框架,它上手简单,语法清晰,界面美观。 教程地址: https://pkg.go.dev/fyne.io/fyne/v2#section-readmehttps://www.topgoer.cn/docs/goday/goday-1cr…
go语言中的io操作主要学习目标
掌握文件的常规操作掌握ioutil包的使用掌握bufio包的使用
在go中使用 FileInfo接口 定义了IO的一些函数
FileInfo接口
源码追溯 //type.go
// A FileInfo describes a file and is returned by Stat and Lstat.
type FileInfo fs.FileInfo/…
package mainimport (
"fmt"
"runtime"
)func test(c chan bool, n int) {x : 0
for i : 0; i < 1000000000; i {
x i
}println(n, x)if n 9 {
c <- true
}
}func main() {
runtime.GOMAXPROCS(1) //设置cpu的核的数量,从而实现高并发
…
GO 类型-变量
变量
GO是静态类型语言,不能在运行期改变变量类型。
变量定义
使⽤关键字 var 定义变量,⾃动初始化为零值。如果提供初始化值,可省略变量类型,由 编译器⾃动推断。
var x int
var f float32 1.6
var s "…
我们在日常开发中,接口定义方式最常见的是 Restful API 或者 RPC,Restful API 基于 HTTP ,提供了几种请求方式,如:
请求方法一般含义GET获取POST新增PUT更新DELETE删除
GET 请求的参数一般会在 URL 后,例如…
目录
303. 区域和检索 - 数组不可变 Range Sum Query Immutable 🌟
304. 二维区域和检索 - 矩阵不可变 Range Sum Query 2d Immutable 🌟🌟
307. 区域和检索 - 数组可修改 Range Sum Query Mutable 🌟🌟
&#…
1、Go语言范围Range
Go 语言中 range 关键字用于 for 循环中迭代数组(array)、切片(slice)、通道(channel)或集合(map)的元素。在数
组和切片中它返回元素的索引和索引对应的值,在集合中返回 key-value 对。
for 循环的 range 格式可以对 slice、map、数组、字符…
官方答疑:
Getters
Go doesn’t provide automatic support for getters and setters. There’s nothing wrong with providing getters and setters yourself, and it’s often appropriate to do so, but it’s neither idiomatic nor necessary to put Get int…
protoc-gen-go是proto文件生成go文件的插件
通过go get命令
go get -u github.com/golang/protobuf/protoc-gen-go
# 指定版本号:
go get -u github.com/golang/protobuf/protoc-gen-gov1.3.2通过源码安装 下载 protoc-gen-go 的源码,地址:…
日期20190531,GO AND TOOLS FOR HOME 0 环境搭建 https://golang.org/dl/ Install the Go toolsIf you are upgrading from an older version of Go you must first remove the existing version.
Linux, macOS, and FreeBSD tarballsDownload the archive and ext…
1、Go语言单元测试
Go语言中的测试依赖 go test 命令,go test 命令是一个按照一定约定和组织的测试代码的驱动程序。在包目录
内,所有以 _test.go 为后缀名的源代码文件都是 go test 测试的一部分,不会被 go build 编译到最终的可执行
文件…
go 语言string
Go语言中的字符串(string)是一种不可变的字节序列。它是以UTF-8编码的Unicode字符集的一个集合。在Go中,字符串是原生类型,使用双引号或反引号括起来表示。
以下是关于Go语言字符串的一些重要特性:
字…
为什么80%的码农都做不了架构师?>>> https://golang.org/doc/articles/race_detector.html Data Race Detector Introduction Usage Report Format Options Excluding Tests How To Use Typical Data Races Race on loop counter Accidentally shared v…
文章目录继承多态继承
通过匿名字段来实现继承,使用结构体嵌套结构体
type person struct {name stringage intsex string
}
//结构体嵌套结构体
type Student struct {//通过匿名字段实现继承操作person //结构体名称作为结构体成员id intscore int
}func main()…
文章目录变量流程控制结构体函数与方法闭包切片(Slice)与子切片Map接口变量
一般我们使用的基础的属性是:bool,int,string,float,complex(复数)
一般我们更常用方法2 var a int 1//声明变量的方法1message:"123132"//声明变量的…
package main
import ( "fmt" "math/rand" "time" )
type producer struct { id int level int }
type consumer struct { id int }
// 定义生产的方法 func (p producer) produce(inputQ chan int, waitQ chan boo…
在早期的 golang 源代码包里面是有 vim 插件的,但是呢,到了1.4的源码包的时候,就删除了 vim 插件。所以我们需要从 1.3.3 版本的代码中获得 vim配置。
一、官网下载
可以从 golang 官网(Downloads - The Go Programming Langua…
Why Pool go自从出生就身带“高并发”的标签,其并发编程就是由groutine实现的,因其消耗资源低,性能高效,开发成本低的特性而被广泛应用到各种场景,例如服务端开发中使用的HTTP服务,在golang net/http包中,每一个被监听…
1.go mod介绍
go mod 是Golang 1.11 版本引入的官方包(package)依赖管理工具。 Golang 提供一个环境变量 GO111MODULE 来设置是否使用mod,它有3个可选值,分别是off, on, auto(默认值),具体含义…
本文通过对 Go 中源码层面的加锁、解锁实现细则来介绍锁的操作,包括 Mutex 互斥锁、RWMutex 读写锁,以及它们底层依赖的 sema 信号锁。 atomic 原子操作
正常情况下,多个协程同时操作 num 时,不能保证 num 值得最终一致性&#x…
在 Go 语言中,断言(Assertion)是一种类型转换的方式,它用于将一个接口类型转换为其他类型。本文将详细介绍 Go 语言中断言的使用方法,包括类型断言和类型选择。
类型断言
在 Go 语言中,类型断言是将一个接…
前言
go相对其他语言,对并发的支持更友好。这使得他的设计和其他程序迥然不同。让我们来看看它都是如何初始化程序的,从程序加载到运行到底经历的什么。
我们继续之前的版本1.18.4
汇编入口
首先我们编译一个hello world 程序。
package main
impor…
在 Go 语言中,new 和 make 都是用于创建新的变量的内置函数,但它们的作用是不同的。
区别
在 Go 语言中,new 和 make 的作用是不同的:
new 用于创建一个新的变量,并返回变量的指针。make 用于创建一个新的切片、映射…
CPU L2缓存初探
探索目的
为了设计高性能的内存数据库,往往要考虑CPU缓存的命中率,查阅资料发现,Intel架构的处理器有3级缓存的设置,其中L1,L2较小,L3较大但被三个核心所公用。在我使用的i7 4712mq中&…
cdsn cbiCBI:中央调查局/印度中央银行 (CBI: Central bureau of Investigation / Central Bank of India) 1)CBI:中央调查局 (1) CBI: Central bureau of Investigation) CBI is an abbreviation of the Central Bureau of Investigation. It is a crimi…
c# sizeofC#sizeof()运算符 (C# sizeof() Operator) sizeof() is an operator in C#, it is used to get the size in bytes of compile-time known types, it does not work with the variables or instances. sizeof()是C#中的一个运算符,用…
web 服务器是可以接收web请求并返回对应的请求数据的后端平台,go语言内置了丰富的关于http和tcp开发的工具包,今天,我们就利用基于http的工具开发web服务器框架吧。 今天是最基础入门的代码,所实现的功能很简单:当运行…
http://golang.org/dl/ 下载golang https://codeload.github.com/GoClipse/goclipse/tar.gz/v0.8.1 解压 安装eclipse go 插件 http://goclipse.github.io/releases/ 勾选 GoClipse 下载GDB for windows http://www.equation.com/servlet/equation.cmd?fagdb 转载于:https://w…
golang dns服务器In this article, I’ll teach you how to create simple web servers with the Go language.在本文中,我将教您如何使用Go语言创建简单的Web服务器。 Golang入门 (Getting Started With Golang) It would be best if you have Go installed on yo…
题目: Given a 2d grid map of 1s (land) and 0s (water), count the number of islands. An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surroun…
这里写目录标题1. Go: No globals, no init functions1. Go: No globals, no init functions
I just created gochecknoglobals and gochecknoinits. The lint tools scan Go code in the current directory and error if they discover global variables or package-level in…
emacs 开发环境 spacemacs已经集成了不少功能,但是缺少代码提示。因此还需要gocode来辅助。 安装所需的命令 go get -u -v github.com/nsf/gocode go get -u -v github.com/rogpeppe/godef go get -u -vgolang.org/x/tools/cmd/guru go get -u -vgolang.org/x/tool…
go module介绍:
大家都知道go没有一个自己的包管理平台。社区里go的第三方包托管在各个git托管平台。需要用到包时通过go get 命令工具安装,但这个工具没有版本描述性文件,在go的世界里没有“package.json”这种文件。这个给我们带来直接的影响就是依赖…
这里写目录标题1. Good way to return on locked mutex in go1.1. go get golang.org/x/sync/semaphore1.2. atomic.CompareAndSwapUint321. Good way to return on locked mutex in go
1.1. go get golang.org/x/sync/semaphore
package mainimport ("errors"&quo…
为什么base64图片 for RESTful 服务 Data URIs 支持大部分浏览器,IE8之后也支持.小图片使用base64响应对于RESTful服务来说更便捷godoc文档 github在线Demo Playground Powered by VuejselementUIAxios wav file 安装golang包 go get -u github.com/mojocn/base64Captcha对于中…
这里写目录标题1. Go 与 C 语言的互操作1.1. Go 调用 C 代码的原理1.2. 在 Go 中使用 C 语言的类型1.2.1. 原生类型1.2.1.1. 数值类型1.2.1.2. 指针类型1.2.1.3. 字符串类型1.2.1.4. 数组类型1.2.1.5. 自定义类型1.2.1.5.1. 枚举(enum)1.2.1.5.2. 结构体(struct)1.2.1.5.3. 联合…
Golang中,if/else 关键字用于条件判断,如果满足条件就做某事,否则做另一件事: if age > 18 {fmt.Println("成年人")} else {fmt.Println("未成年")} 多重判断: if score > 90 {fmt.Println(…
使用非泛型函数
golang在没有泛型的时候,如果我们要计算一个map的所有value之和,比如该map的key为string类型,value是int64类型,我们需要定义以下函数:
// SumInts adds together the values of m.
func SumInts(m m…
使用gogoproto时报错
Import "github.com/gogo/protobuf/gogoproto/gogo.proto" was not found or had errors.
需要把每个需要导入的包都在--proto_path加上,比如需要导入github.com/gogo/protobuf/gogoproto/gogo.proto,我本地的github.co…
总览
Go 专家编程 go sum 文件
为了确保一致性构建,Go引入了go.mod文件来标记每个依赖包的版本,在构建过程中go命令会下载go.mod中的依赖包,下载的依赖包会缓存在本地,以便下次构建。 考虑到下载的依赖包有可能是被黑客恶意篡改…
目录标题 一、Variadic Functions1.Syntax2.Examples and understanding how variadic functions work3.Slice arguments vs Variadic arguments 仅改变可变参数4.Gotcha 二、Map1.Create a Map2.Retrieving value for a key from a map3.Checking if a key exists4.Iterate ov…
前言
Go 目前的调试器有如下几种:
GDB 最早期的调试工具,现在用的很少。LLDB macOS 系统推荐的标准调试工具,单 Go 的一些专有特性支持的比较少。Delve 专门为 Go 语言打造的调试工具,使用最为广泛。
本篇简单说明如何使用 Del…
golang中goroutine由运行时管理,使用go关键字就可以方便快捷的创建一个goroutine,受限于服务器硬件内存大小,如果不对goroutine数量进行限制,会出现Out of Memory错误。但是goroutine泄漏引发的血案,想必各位gopher都经历过&#…
在 Go 语言中,make 是一个用于创建切片、映射(map)和通道(channel)的内建函数。它提供了一种初始化和分配内存的方式,用于创建具有特定长度和容量的数据结构。下面将详细介绍 make 函数的使用方法和各种情况…
文章目录 安装获取凭证配置app.conf上代码调用示例ps 安装
执行命令:
go get github.com/qiniu/go-sdk/v7获取凭证
Go SDK 的所有的功能,都需要合法的授权。授权凭证的签算需要七牛账号下的一对有效的Access Key和Secret Key,这对密钥可以…
文章目录 69. x 的平方根:样例 1:样例 2:提示: 分析:题解:rust:go:c:python:java: 69. x 的平方根:
给你一个非负整数 x ,…
一、获取cron/v3包
go get github.com/robfig/cron/v3v3.0.0安装v3版本的cron包。
二、创建cron调度器
使用cron.New()创建一个新的Cron调度器:
c : cron.New()三、添加定时任务
使用AddFunc方法添加定时任务,参数是cron表达式和任务函数:
c.AddFunc("* * * * *&quo…
问题阐述
最近在Github上提交PR后,遇到了这么一个问题:golangci-lint运行失败,具体原因是File is not gofumpt-ed (gofumpt)。 名词解释
golangci-lint: golangci-lint 是Go语言社区中常用的代码质量检查工具,它可以…
type myInt int32 与 type myInt int32,概念并不相同 自定义类型:type myInt int32 通过这种方式定义的类型是一个全新的类型,这个新类型与int32有相同的底层结构,但是却与int32类型不兼容。 type myInt int32var a int32 5
var…
目录标题 一、Interface1. Declaring and implementing an interface2. Practical use of an interface3. Nterface internal representation4. Empty interface5. Type assertion6. Type switch7. Implementing interfaces using pointer receivers VS value receivers8. Impl…
控制结构
if 的“快乐路径”原则
针对程序的分支结构,Go 提供了 if 和 switch-case 两种语句形式;而针对循环结构,Go 只保留了 for 这一种循环语句形式。
if 语句
if 语句是 Go 语言中提供的一种分支控制结构,它也是 Go 中最常…
golang远程开发,插件安装失败
Failed to find the "go" binary in either GOROOT() or PATH(/root/.vscode-server/bin/b3e4e68a0bc097f0ae7907b217c1119af9e03435/bin/remote-cli:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/g…
目录 题目:最长公共前缀解法1:纵向对比-循环内套循环写法复杂度:时间复杂度 O ( n ∗ m ) O(n*m) O(n∗m)、空间复杂度 O ( 1 ) O(1) O(1)Go代码 解法2:横向对比-两两对比(类似合并K个数组、合并K个链表)复…
Go 1.21新增的 slices 包提供了很多和切片相关的函数,可以用于任何类型的切片。
slices.Delete
定义如下:
func Delete[S ~[]E, E any](s S, i, j int) S
从 s 中删除元素 s[i:j],返回修改后的切片。如果 s[i:j] 不是 s 的有效切片&#…
上一节,我们了解Go语言特性以及第一个Go语言程序——Hello World,这一节就让我们更深入的了解一下Go语言的**基础语法**吧!
一、行分隔符
在 Go 程序中,一行代表一个语句结束。每个语句不需要像 C 家族中的其它语言一样以分号 ;…
目录 1. go work 笔记 (多模块工作区)1.1. 什么是 go work1.2. go work 支持命令1.3. go.work 文件结构1.4. use 指定使用的模块目录1.5. replaces 替换依赖仓库地址1.6. go.work 文件优先级高于 go.mod 中定义1.7. 如何使用1.8. 如何禁用工作区1.9. 开发流程演示1.10. 总结 1.…
服务发现
在微服务中每一个服务都有一个ip端口,如果由客户端来之间进行连接会不方便,因此服务将自己的ip端口提交给服务发现(常见的有consul,etcd,nacos),客户端通过服务发现来获取服务的ip端口
consul
去下载&…
has many 与另一个模型建立了一对多的连接。 不同于 has one,拥有者可以有零或多个关联模型。
例如,您的应用包含 user 和 credit card 模型,且每个 user 可以有多张 credit card。
定义model
// User 有多张 CreditCard,UserI…
多位员工属于同一个公司,一个公司包含多个人,关系放在多的那一部分 belongs to 会与另一个模型建立了一对一的连接。 这种模型的每一个实例都“属于”另一个模型的一个实例。
例如,您的应用包含 user 和 company,并且每个 user 能…
GO GC
垃圾回收(Garbage Collection,简称GC)是编程语言中提供的自动的内存管理机制,自动释放不需要的对象,让出存储器资源,无需程序员手动执行。
Golang中的垃圾回收主要应用三色标记法,GC过程和其他用户goroutine可…
这是我在写这个代码处出现的问题
result : db.Save(&emergency)
这个错误是由于在提交保存数据时,GORM 需要指定 WHERE 条件,确保能够正确执行数据库操作。要解决这个问题,可以尝试使用 Create 方法替换 Save 方法,同时将创…
文章目录 73. 矩阵置零:样例 1:样例 2:提示:进阶: 分析:题解:rust:go:c:python:java: 73. 矩阵置零:
给定一个 m x n 的矩…
golang中byte和rune的区别?
rune和byte在go语言中都是字符类型,从源码来看他们都是别名形式
// byte is an alias for uint8 and is equivalent to uint8 in all ways. It is
// used, by convention, to distinguish byte values from 8-bit unsigned…
练习4.1 编写一个函数,计算两个SHA256哈希码中不同bit的数目。(参考2.6.2节的PopCount函数。) func PopCount(ptr *[32]byte) int {var res intfor i : 0; i < 32; i {x : int(ptr[i])for x ! 0 {res x & 1x >> 1}}return res
}练习4.2 编…
目录标题 一、Panic1. What is Panic?2. What should panic be used?3. Example4. Defer Calls During a Panic 延迟panic5. Recovering from a Panic 关联6. Getting Stack Trace after Recover 输出堆栈信息7. Panic, Recover and Goroutines 二、First Class Functions1. …
目录标题 一、Reflection反射1. What is reflection? 什么是反射2. Inspect a variable and find its type 检查变量并找到它的类型3. Reflect.Type and reflect.Value 反射类型和值4. Reflect.Kind 查看底层种类5. NumField() and Field() methods 字段数量和索引值方法6. In…
1. 缓冲写
在阅读这篇博客之前,请先阅读上一篇:golang-bufio 缓冲读
// buffered output// Writer implements buffering for an io.Writer object.
// If an error occurs writing to a Writer, no more data will be
// accepted and all subsequent…
疑难分析
1.对于range遍历的理解
eg:
package main import "fmt" func main() {
nums : []int{2, 3, 4}
sum : 0
for i, num : range nums {
sum num
if num 2 {
fmt.Println("index:", i, "num:", num)
}
} …
Go 是一种开源编程语言,最初由 Google 设计,用于优化系统级服务的构建和使用、在大型代码库上轻松工作,以及利用多核联网机器。 Go 于 2009 年推出,作为一种静态类型和编译型编程语言,深受 C 语言的影响,注…
导入必要的包: import ("crypto/rand""crypto/sha256""encoding/hex""fmt""io"
)这里导入了一些标准库的包,用于生成随机数、计算SHA-256哈希和处理十六进制编码。 main 函数: 在 main 函…
和Python、Ruby等动态脚本语言不同,Go语言沿袭了静态编译型语言的传统:使用变量之前需要先进行变量的声明。 变量声明形式使用决策流程图 这里大致列一下Go语言常见的变量声明形式:
var a int32
var s string "hello"
var i 13
…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页:
🐅🐾猫头虎的博客🎐《面试题大全专栏》 🦕 文章图文并茂🦖…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页:
🐅🐾猫头虎的博客🎐《面试题大全专栏》 🦕 文章图文并茂🦖…
一. 字符串
字符串长度:
s : "hello"
l : len(s)
fmt.Println(l) // 输出 5遍历字符串:
s : "hello"
for i, c : range s {fmt.Printf("%d:%c ", i, c)
}
// 输出:0:h 1:e 2:l 3:l 4:ofor i : 0; i < le…
一、拓扑排序的定义:
先引用一段百度百科上对于拓扑排序的定义:
对一个有向无环图 ( Directed Acyclic Graph 简称 DAG ) G 进行拓扑排序,是将 G 中所有顶点排成一个线性序列,使得图中任意一对顶点 u 和 v ,若边 <…
什么是Go语言? Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回…
结构体排序使用sort包中的sort.SliceStable() 函数。该函数需要传入一个结构体数组参数和一个匿名函数(排序方式) e.g.
type inte struct {l, r int
}
//调用排序函数,按inte中l从小到大的方式排序
sort.SliceStable(intes, func(i, j int) …
最近发现 Go 官方自己推出了新的工具,作用是漏洞管理,告诉你已报告的漏洞,并告知你应该如何升级到什么版本。
版本要求是:Go > 1.18
go install golang.org/x/vuln/cmd/govulnchecklatest进入项目目录govulncheck ./...输出如…
首先,需要确保已经安装了Go编程语言和gRPC库。可以使用以下命令安装gRPC库:
go get -u google.golang.org/grpc下面是一个基本的gRPC示例,其中包括服务器端和客户端。示例演示了一个简单的计算器服务,客户端可以发送两个数字给服…
Golang 协程池 Ants 实现原理,附详细的图文说明和代码。
1 前置知识点 1.1 sync.Locker sync.Locker 是 go 标准库 sync 下定义的锁接口:
// A Locker represents an object that can be locked and unlocked.
type Locker interface {Lock()Unlock()
…
Go 多版本管理工具 文章目录 Go 多版本管理工具一、go get 命令1.1 使用方法: 二、Goenv三、GVM (Go Version Manager)四、voidint/g4.1 安装4.2 冲突4.3 使用 在平时开发中,本地新旧项目并行开发的过程中,你大概率会遇到一个令人头疼的问题&…
第一个 Go 程序"hello,world" 与 main 函数 文章目录 第一个 Go 程序"hello,world" 与 main 函数一.创建“hello,world”示例程序二. “hello,world” 程序结构拆解三、main 函数四、Go 语言中程序是怎么编译…
Web 框架:
Gin:高性能的 Web 框架,适用于构建 RESTful API 和 Web 应用。 Echo:快速和灵活的 Web 框架,适合构建微服务。 Beego:全功能的 Web 框架,包括 ORM、模板引擎等。 Revel:全…
go编译程序出现错误提示: go.mod file not found in current directory or any parent directory; see ‘go help modules’ (exit status 1) 解决方法: cmd切换到go工程目录下,执行:
go mod init 工程名称
背景 前两天 Golang 的官方博客更新了一篇文章:Fixing For Loops in Go 1.22 看这个标题的就是修复了 Go 循环的 bug,这真的是史诗级的更新;我身边接触到的大部分 Go 开发者都犯过这样的错误,包括我自己,所以前两年我也…
一、go test
go test命令是一个按照一定的约定和组织来测试代码的程序。在包目录内,所有以_test.go为后缀名的源文件在执行go build时不会被构建成包的一部分,它们是go test测试的一部分。
在*_test.go文件中,有三种类型的函数:…
优化您的 Go 应用程序 1. 如果您的应用程序在 Kubernetes 中运行,请自动设置 GOMAXPROCS 以匹配 Linux 容器的 CPU 配额
Go 调度器 可以具有与运行设备的核心数量一样多的线程。由于我们的应用程序在 Kubernetes 环境中的节点上运行,当我们的 Go 应用程…
header和trailer元数据传输
header和trailer元数据最后会设置到http header。 用于传输除了proto定义以外的额外信息。比如用户身份认证信息,代理信息,访问令牌等。在grpc里统称为metadata.MD
元数据构建
元数据数据结构
// MD is a mapping from me…
结构体
结构体定义
type name struct{value1 type1value2 type2......
}组成结构体的数据称为字段,每一个字段有一个类型和一个名字,每一个字段的名字必须唯一,字段的类型任意。
创建结构体
type myStruct struct{i1 intf1 float32str st…
编写结构化程序for、if、switch - Go语言从入门到实战
for 循环
与其他主要编程语⾔的差异: Go 语⾔仅⽀持循环关键字 for,而且代码更简洁性和灵活性。 一般的 for 循环结构如下:
for 初始化; 条件; 后续操作 { // 循环体
}Go语言在循环…
前言 Python 和 Go 语言是两种不同的编程语言,它们分别有自己的优势和适用场景。在一些项目中,由于团队内已有的技术栈或者某一部分业务的需求,可能需要 Python 和 Go 相互调用,以此来提升效率和性能。 性能优势 Go 通常比 Python 更高效&…
文章目录 一、go mod 是什么?二、详细命令 1. init2.download3.tidy4.graph5.edit6.vendor7.verify8.why 总结 一、go mod 是什么?
go modules 官方定义为: 模块是相关Go包的集合。modules是源代码交换和版本控制的单元。 go命令直接支持使用…
又是一篇需要我们多些思考的文章~
简介下Rob Pike
Rob Pike是Unix的先驱,UTF-8的设计人,Go语言核心设计者之一。
Rob Pike的5条编程规则
原文地址:http://users.ece.utexas.edu/~adnan/pike.html
中文翻译:
罗布派克&#x…
Go语言的包依赖管理经历了几次变革
最早的时候,Go所依赖的所有的第三方库都放在GOPATH目录下面
go v1.5引入vendor模式,如果项目目录下有vendor目录,那么go工具链会优先使用vendor内的包进行编译、测试等
go v1.11开始,引入Go …
文章目录 高维数组切片指针 go语言教程:安装入门➡️for循环
高维数组
前面已经讲到过基本的数组声明方式
var a [3]int // a是长度为3的数组,内容为0
var b [3]int{1, 2, 3}
c : [3]int{1,2,3}由于数组只需要内部元素有着相同类型,所以自…
目录 1.SDK安装
2.编辑器下载
3.编辑器准备
4.使用
4.1常见请求方式 1.SDK安装
保证装了Golang的sdk(官网下载windows.zip->解压,安装,配置bin的环境变量) 2.编辑器下载
Download GoLand: A Go IDE with extended support for JavaScript, Ty…
上一篇文章讲解了 log/slog 包中的 LogValuer 和日志记录函数的正确包装方法,本文详细讲解一下 slog.Record 结构体的使用方法和需要注意的点。
slog.Record
Record 类型用来保存日志事件的信息,定义如下:
type Record struct {Time time.…
报错缘由
学习 hystria, 尝试自测案例,使用了 go get “github.com/afex/hystrix-go/hystrix” 进行导入包, 导入成功后,在代码里利用 import 导入,但遇到了以下报错
could not import github.com/afex/hystrix-go/hystrix (current file i…
为什么需要开发自己的 Go 库
在编程语言中,包(Package)和库(Library)是代码组织和复用的重要工具。在 Go 中,包是代码的基本组织单位,每个 Go 程序都由包构成。包的作用是帮助组织代码…
Go 语言常用命令详解
在 Go 项目的开发、构建和部署过程中,我们会使用到多个 go 命令。为了更好地理解它们,让我们逐一进行详解。
1. go mod init
作用:初始化一个新的 Go 模块,并创建一个 go.mod 文件,用于管理项目…
准备
1,安装grpc
go get -u google.golang.org/grpc2, 安装go语言protobuf生成器protoc-gen-go
go get -u google.golang.org/protobuf/cmd/protoc-gen-go注意: 将GOPATH下的bin目录配置在环境变量中否则会找不到命令编写proto文件
# server/proto/tes…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
package mainimport ("fmt""sync"//"time"
)
var wg sync.WaitGroup
func writeData(intchan chan int){defer wg.Done()for i : 1; i < 9; i {intchan<-ifmt.Println("写入的数据为:",i)//time.Sleep(time.Seco…
WebView2 是 Microsoft 提供的一种用于嵌入 Web 内容的技术,可以在应用程序中使用 Web 技术来实现用户界面。Golang WebView2 是针对 Golang 开发者而言的 WebView2 的封装库,它使得在 Golang 应用程序中嵌入 Web 内容变得更加简单和便捷。本文将介绍 Go…
队列是一种基本的数据结构,用于在计算机科学和编程中管理数据的存储和访问。队列遵循先进先出(First In, First Out,FIFO)原则,即最早入队的元素首先出队。这种数据结构模拟了物理世界中的队列,如排队等待服…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
2. 实现方式
2.1. react-ts
function encrypt(text){import CryptoJS from crypto-jsconst key "saxbj%2xas"const text "liyuan"const iv "01234567"const result CryptoJS.TripleDES.encrypt(text, CryptoJS.enc.Utf8.parse(key), {mode:…
一、入门案例 1、在黑窗口上安装 go install github.com/zeromicro/go-zero/tools/goctllatest2、使用goland创建一个项目 3、在项目中安装依赖 go get -u github.com/zeromicro/go-zerolatest4、模拟创建一个user的项目 goctl api new user5、安装依赖包 go mod tidy6、补充代…
文章目录 golang概述Go 语言特色Go 语言用途 Go 语言结构执行 Go 程序 Go 语言包管理01Go 语言包管理02Go 语言基础语法Go 标记行分隔符注释标识符字符串连接关键字、预定义标识符Go 语言的空格格式化字符串 Go 语言数据类型数字类型浮点型其他数字类型 Go 语言变量变量声明零值…
文章目录 Go 语言接口例子空接口空接口的定义空接口的应用空接口作为函数的参数空接口作为map的值 类型断言接口值 类型断言例子001类型断言例子002 Go 语言接口
接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
文章目录 前言常用命令go get示例参数说明 go install示例参数说明 go list示例 go mod示例参数说明 go work基本用法示例 go tool示例 go version示例 go vet示例 总结写在最后 前言
接着上一篇继续介绍Go语言的常用命令
常用命令
以下是一些常用的Go命令,这些命…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
go mod 缓存
在 Golang 中,模块是对一组版本化的包的集合的描述。Go 1.11 版本引入了模块支持,通过 go mod 命令提供了对模块的管理。Go 模块的一个重要特性是依赖管理,可以清晰地定义项目所依赖的模块及对应的版本,并确保代码使…
在比较一段长的时间里,Go 的错误处理已经没有什么特别的进展和新改进了。看着已经到了瓶颈期。
今天在 GitHub 上学习时,看到 Go 社区里有人提了个错误处理的优化提案《proposal: Go 2: Error-Handling Paradigm with !err Grammar Sugar》,…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
Channel Go channel就像Go并发模型中的“胶水”,它将诸多并发执行单元连接起来,或者正是因为有channel的存在,Go并发模型才能迸发出强大的表达能力。 无缓冲channel
无缓冲channel兼具通信和同步特性,在并发程序中应用颇为广泛。…
文章目录 什么是 Go Modules为什么要使用 Modules怎么使用前置条件项目初始化如何安装/管理依赖?依赖安装 go get版本选择方式 替换版本 replace间接依赖 && go mod tidy远程代理 总结 什么是 Go Modules
Module 是 Go 的依赖管理工具。
核心概念
Module…
🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…
文章目录 一、sqlite使用sqlite3命令行工具创建数据库,查询数据 二、关于mattn/go-sqlite3三、mattn/go-sqlite3使用四、go 使用sqlite常见问题总结window下编译报错:Binary was compiled with CGO_ENABLED0, go-sqlite3 requirewindow下编译报错&#x…
1、Go 1.3之前的标记-清除(mark and sweep)算法
Go 1.3之前的时候主要用的是普通的标记-清除算法,此算法主要由两个主要的步骤:
标记(Mark phase)清除(Sweep phase)
1)…
golang实现注册系统服务(Windows、Darwin) 仓库地址:https://github.com/ziyifast/yiSystemService 使用第三方包:go get “github.com/kardianos/service” 日志库:go get “github.com/sirupsen/logrus” log “gith…
简介
Go 语言通过内置的 error 接口来处理错误,该接口定义如下:
type error interface {Error() string
}这意味着任何实现了 Error() 方法的类型都可以作为错误类型。在 Go 中,通常使用 errors 包的 New 函数来创建简单的错误:…
在Go语言中,runtime 包提供了与程序的运行时环境相关的功能。这个包包含了一些控制Go语言程序运行时行为的函数和变量。以下是一些 runtime 包中常用的功能和对象: Goroutines 和调度器(Goroutines and Scheduler): go 函数&#…
Go 语言,作为一门现代的编程语言,提供了对正则表达式的强大支持。在 Go 中,正则表达式的功能通过标准库中的 regexp 包来实现。本文将介绍如何在 Go 中使用 regexp 包来编译和执行正则表达式,以及如何从文本中匹配和提取信息。
正…
go的官方下载地址:All releases - The Go Programming Language
1、找到对应的版本包下载,例如
wget https://golang.google.cn/dl/go1.21.6.linux-amd64.tar.gz 2、下载完成后配置解压Go源码包
tar -zxf go1.21.6.linux-amd64.tar.gz
3…
深入了解 Go 1.22 版本及其语言增强功能 随着 Go 编程语言的不断发展,即将发布的版本 Go 1.22 承诺带来各种新功能、改进和变化。预计于 2024 年 2 月发布的 Go 1.22 引入了对语言、工具、运行时、编译器和核心库的增强。让我们深入了解一些在这个即将发布的版本中开…
gopacket项目是google出品的golang第三方库,项目源码地址google/gopacket: Provides packet processing capabilities for Go (github.com)
gopacket核心是对经典的抓包工具libpcap(linux平台)和npcap(windows平台)的go封装,提供了更方便的go语言操作接…
1. 切片slice
在Go语言中,创建切片有两种常见的方式:使用 var 声明空切片和使用 make 函数。
使用 var 声明空切片:
var s []int
s append(s, 100)这种方式会声明一个空的切片,初始时没有分配底层数组。你可以使用 append 函数…
报错信息
register db Ping default, Binary was compiled with ‘CGO_ENABLED0’, go-sqlite3 requires cgo to work. This is a stubWindows解决办法
新建环境变量 新报错
Failed to build the application: # runtime/cgo
cgo: C compiler “gcc” not found: exec: “gc…
在 Go 语言中,组合模式(Composition)是通过嵌入结构体(embedding structs)来实现的。它允许我们构建复杂的对象,通过将简单对象组合成树形结构来表示整个部分的层次结构。在 Go 中,这种模式不仅…
1.变量
go是一个静态语言
变量必须先定义后使用变量必须要有类型
定义变量的方式:
var 名称 类型
var 名称 值
名称 :值
例如:
var num int
这样就存了一个num类型为int的变量
var num 1
上面使用简化的定义通过num自动判断后面的类型为int并…
Go atomic包是最轻量级的锁(也称无锁结构),可以在不形成临界区和创建互斥量的情况下完成并发安全的值替换操作,不过这个包只支持int32/int64/uint32/uint64/uintptr这几种数据类型的一些基础操作(增减、交换、载入、存…
文章目录 1.判断ipv4 or ipv62.计算cidr格式ip所含IP个数3.计算两个ip区间所含ip个数 1.判断ipv4 or ipv6
// return int 0:错误的ip 4:ipv4 6:ipv6
func CheckIp(ip string) int {if ip "" {return 4}out : net.ParseIP(ip)if out nil {return 0}if strings.Cont…
编程笔记 Golang基础 010 常量和变量 一、常量二、变量小结 在 Go 语言中,常量(Constant)是一个固定的值,在程序运行期间不可被修改。它们通常用来表示那些在整个程序执行过程中不会变化的数值或其他类型的数据。在 Go 语言中&…
Golang 基础环境和语法
交叉编译
windows 下打包 linux 的运行程序。
设置变量
set GOARCHamd64
set GOOSlinuxgo build取消变量
set GOARCH
set GOOS显示变量
set GOgo test
当go test以包列表模式运行时,go test会缓存成功的包的测试结果以避免不必要的重复…
在 Go 语言中,空切片和 nil 切片是两种不同的概念。
空切片:
空切片是一个长度和容量都为 0 的切片。你可以通过 make 函数或者切片字面量来创建一个空切片,例如 s : make([]int, 0) 或者 s : []int{}。
空切片不是 nil,即 s !…
前言
在这篇文章中碰巧看到了Go边界检查消除相关的讨论. 我也借此简单聊聊.
有这样一段代码, 非常简单, 就是一段求向量点积的程序:
func sum(a, b []int) int {if len(a) ! len(b) {panic("must be same len")}ret : 0for i : 0; i < len(a); i {ret a[i] * …
结构体:相当于"类"
1.结构体声明
type [name] struct {[field_name] [field_type][field_name] [field_type]...
}//例子:type Person struct {name stringage int
}其中field_name可以省略
2.结构体的使用
1) 格式1
var person Person
p…
1.遇到的问题 问题来源于,我sql模版拼接遇到的问题。 首先,这样是没有问题的。 var qhx interface{} "qhx"s : qhx.(string)fmt.Println(s) 但是当我在这段代码里用的时候:1.类型断言
var sqlStr "select * from tx_user where username %s"…
1、执行命令 go get github.com/go-redis/redis/v8 报错 :
go: coding.jd.com/xxx/xxxxxxv0.0.0-xxxxxxxxxx: invalid version: git ls-remote -q origin in /users/douhao7/go/pkg/mod/cache/vcs/xxxxxxxxxxxxxx: exit status 128: 致命错误:could not read use…
前言
go语言是静态类型语言,也就是在编译时编译器需要知道程序中值的类型,这样有利于减少bug和提高性能,具体就是内存的分配量和其中的内容
用户定义类型
1.用户定义新的类型,需要使用type 和struct关键字
type user struct {…
原文:breadchris - 2024.02.21
也许听起来有些傻,但go run是我最喜欢的 Go 语言特性。想要运行你的代码?只需go run main.go。它是如此简单,我可以告诉母亲这个命令,她会立即理解。就像 Go 语言的大部分功能一样&…
在 Go 语言中连接 MySQL 数据库通常使用第三方库。目前比较流行的 MySQL 客户端库包括 github.com/go-sql-driver/mysql、github.com/go-xorm/xorm、github.com/jmoiron/sqlx 等。下面是一个使用 github.com/go-sql-driver/mysql 库连接 MySQL 数据库的简单示例:
首…
package mainimport "fmt"func swap(a *int, b *int) int {var o into *a*a *b*b oreturn o}func main() {var a int 1var b int 2swap(&a, &b)fmt.Println(a, b)
}这个函数接受两个整数指针作为参数,然后通过指针操作,交换它们所…
go 命令行框架cobra
go 拉取依赖包go get github.com/spf13/cobra
认识spf13/cobra-cli. cobra 命令行框架在golang中的地位也算得上是大明星级别。像k8s,docker都有使用这个框架构建自己命令行这块的功能.
最最最简单的开始----使用命令行工具cobra-cli来初始化你的demo
c…
Go 语言
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在20…
开启go modGOROOT是你下载的go编译器的目录。GOPATH的位置是Go开发的工作空间,比如可用于保存Go项目的代码和第三方依赖包。下载不了包多半是镜像源有问题,什么阿里七牛都试下go mod tidy可以拉取未下载的包,移除没用上的包进行web开发时热重…
简介
templ 是一个在 Go 中编写 HTML 用户界面的语言。使用 templ,我们可以创建可呈现 HTML 片段的组件,并将它们组合起来创建屏幕、页面、文档或应用程序。
安装
我们可以通过以下两种方式来安装 templ:
go 安装
首先,我们需…
参考文献:
flag package - flag - Go Packages
使用:
import "flag"
var nFlag flag.Int("n", 1234, "help message for flag n")
上述方法返回的是一个指针变量nFlag,如果我们要打印,应该使用…
Go语言-关于 go get 和 go install
一直以来,我们通常都是通过 go get 来下载并安装包的。但从 Go 1.16 起,不推荐通过 go get 来安装包(主要是说安装可执行文件),也就是说,go get 应该只是用来下载包&…
在Go语言中: var a chan int 定义了一个名为 a 的变量,其类型为 chan int。这意味着 a 是一个整型值的通道(channel)。通道是Go语言中用于goroutine之间通信的一种机制,你可以通过通道发送和接收特定类型的值。在这个例…
Functions, Methods, and Interfaces in Go
Course Certificate
本文是学习 Functions, Methods, and Interfaces in Go 这门课的学习笔记,如有侵权,请联系删除。 文章目录 Functions, Methods, and Interfaces in GoMODULE 1: FUNCTIONS AND ORGANIZ…
Concurrency in Go
Course Certificate
这个专项课程3门课程的certificate
本文是 Concurrency in Go 这门课的学习笔记,如有侵权,请联系删除。 文章目录 Concurrency in GoMODULE 1: Why Use Concurrency?Learning Objectives M1.1.1 - Parallel …
Go语言学习06-错误处理
Go的错误机制
与其他主要编程语言的差异 没有异常机制 error类型实现了error接口 可以通过 errors.New 来快速创建错误实例 type error interface {Error() string
}errors.New("n must be in range [0, 10]")最佳实践
定义不同的错误变量…
概念
垃圾回收(GC-Garbage Collection)暂停程序业务逻辑SWT(stop the world)程序根节点:程序中被直接或间接引用的对象集合,能通过他们找出所有可以被访问到的对象,所以Go程序的根节点通常包括…
代码
package stacklessimport ("errors""fmt""io""sync""github.com/valyala/bytebufferpool"
)// Writer is an interface stackless writer must conform to.
// Writer 是 Stackless writer 必须遵守的接口
// The int…
报错:
go: cloud.google.com/gov0.41.0: Get "https://proxy.golang.org/cloud.google.com/go/v/v0.41.0.mod": dial tcp 142.251.43.17:443: connectex: A connection attempt failed because the connected party did not properly respond after a pe…
螺旋矩阵 II
题目:59. 螺旋矩阵 II - 力扣(LeetCode)
给你一个正整数 n ,生成一个包含 1 到 n2 所有元素,且元素按顺时针顺序螺旋排列的 n x n 正方形矩阵 matrix 。
示例 1: 输入:n 3
输出…
题目描述
给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。
单词必须按照字母顺序,通过相邻的单元格内的字母构成,其中“相邻”单元格是那些水平相…
作者简介: 高科,先后在 IBM PlatformComputing从事网格计算,淘米网,网易从事游戏服务器开发,拥有丰富的C,go等语言开发经验,mysql,mongo,redis等数据库,设计模…
1.下载protobuf的编译器,安装到系统设置环境变量
地址:https://github.com/protocolbuffers/protobuf/releases
下载对应的编译器
2.安装库文件 二选一
go get github.com/golang/protobuf/proto
go get github.com/gogo/protobuf/proto
安装go语言插件
…
参考文章:https://marksuper.xyz/2021/06/29/dlv-goland/ 首先安装一下dlv这个工具: git clone GitHub - go-delve/delve: Delve is a debugger for the Go programming language. cd delve go install github.com/go-delve/delve/cmd/dlv 我们直接开始配…
3.redis的常用命令 go get github.com/redis/go-redis/v9
2.建立连接和使用方法
https://redis.uptrace.dev/zh/guide/go-redis.html#%E4%BD%BF%E7%94%A8-tls
3.redis的常用命令
1.通用指令
rename <key><newkey> #修改key名字
type <key> #获取键对…
环形链表
题目:142. 环形链表 II
给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。
如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给…
题目描述
给你一个满足下述两条属性的 m x n 整数矩阵:
每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。
给你一个整数 target ,如果 target 在矩阵中,返回 true ;否则,返回…
数组中的第 K 个最大元素
题目:数组中的第 K 个最大元素
给定整数数组 nums 和整数 k,请返回数组中第 k 个最大的元素。
请注意,你需要找的是数组排序后的第 k 个最大的元素,而不是第 k 个不同的元素。
示例 1:
输入: [3,2,1…
文章目录 1.简介2.格式3.示例4.环境变量参考文献 1.简介
go env 用于查看和设置 Go 环境变量。
默认情况下 go env 输出格式为 Shell 脚本格式(如 Windows 上是 batch 文件格式)。如果指定变量名称,则只输出变量的值。
2.格式
go env [-j…
go的通道channel是用于协程之间数据通信的一种方式
一、channel的结构
go源码:GitHub - golang/go: The Go programming language
src/runtime/chan.go
type hchan struct {qcount uint // total data in the queue 队列中当前元素计数,…
Go 语言(Golang)是一门静态强类型、编译型的编程语言,由 Google 开发。Go 语言的反射(Reflection)是一个强大的特性,它允许程序在运行时获取类型的信息,并且能够操作这些类型。反射在 Go 语言中…
背景
司内线上服务有很多异步脚本,大量冗余代码,管理很不方便 急需一个美丽的框架,让代码变得美好
包
go get github.com/go-co-op/gocron/v2
介绍
gocron is a job scheduling package which lets you run Go functions at pre-determined intervals.
概念 Job Job封…
文章目录 0、进制1、变量的声明2、数据类型3、整型4、浮点型5、字符类型6、布尔类型7、字符串类型8、基本数据类型的默认值9、类型转换10、基本类型转String11、String转其他类型 0、进制
N进制,逢N进一 1、变量的声明
//声明 赋值
var age int 18//声明、赋值、…
go 中只有值传递
当modify函数被调用并传入一个Item类型的实例item2时,它实际上接收的是item2的一个副本。因此,函数内部对Name字段的修改仅作用于这个副本上,并不会影响原始的item2实例。这证明了结构体作为值类型,在通过值传递…
文章目录 大纲前置篇显式 大纲 前置篇
显式
package main
import "fmt"
func main() {
var a int16 5
var b int 8
var c int64
c a b
fmt.Printf("%d\n", c)
}如果我们编译这段程序,将得到类似这样的编译器错误:“invalid op…
后端仓库地址
地址
项目依赖
# gin
go get -u github.com/gin-gonic/gin
# viper日志
go get -u github.com/spf13/viper
# 数据库和gorm
go get -u gorm.io/driver/mysql
go get -u gorm.io/gorm
# uuid
go get -u github.com/google/uuid
# token
go get -u github.com/go…
通常报错:
1.http: server gave HTTP response to HTTPS client
2.timeout 解决指令:(会话临时性),长久的可以在配置文件中配置
go env -w GOPROXYhttps://goproxy.cn,direct
长久的,在~/.bashrc文件中添加:
expo…
Gin 是一个 Go (Golang) 编写的轻量级 web 框架,运行速度非常快,擅长 Api 接口的高并发,如果项目的规模不大,业务相对简单,这个时候我们也推荐您使用 Gin,特别适合微服务框架。
我自己也是Go开发方面的菜鸟…
反转字符串 II
题目:541. 反转字符串 II
给定一个字符串 s 和一个整数 k,从字符串开头算起,每计数至 2k 个字符,就反转这 2k 字符中的前 k 个字符。
如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于…
设置私有仓库,这样访问的时候,url前缀就不加proxy和sumdb
go env -w GOPRIVATE"code.xxx.cn"
go env -w GONOPROXY"code.xxx.cn"
go env -w GONOSUMDB"code.xxx.cn" 设置取消安全认证
go env -w GOINSECURE"code…
Go 语言支持以下系统: LinuxFreeBSDMac OS X(也称为 Darwin)Windows安装包下载地址为:All releases - The Go Programming Language。
如果打不开可以使用这个地址:All releases - The Go Programming Language。
UNIX/Linux/Mac OS X, 和 FreeBSD 安装
以下介绍了在UN…
问题描述
在一台ubuntu 20的机器上通过go 编译生成的可执行程序(使用了cgo),在其他ubuntu机器上运行时出现如下问题
/lib/x86_64-linux-gnu/libc.so.6: version GLIBC_2.32 not found
问题分析
因为go代码里的依赖库使用到了sndfile,它必须使用cgo了…
介绍
Gin 是一个用 Go (Golang) 编写的 Web 框架。 它具有类似 martini 的 API,性能要好得多,多亏了 httprouter,速度提高了 40 倍。 如果您需要性能和良好的生产力,您一定会喜欢 Gin。
安装
go get -u github.com/gin-gonic/g…
根据官网文档 Go Wiki: SQL Database Drivers - The Go Programming Language 可以看到go可以连接的关系型数据库
常用的关系型数据库基本上都支持,下面以mysql为例
下载mysql驱动
打开上面的mysql链接 GitHub - go-sql-driver/mysql: Go MySQL Driver i…
这个错误表明你正在执行 go get 命令,但是当前目录或任何父目录中都找不到 go.mod 文件。这可能是因为你的项目还没有使用 Go Modules 进行管理。
要解决这个问题,有几种方法:
go mod init <module-name>
其中 <module-name>…
delve debug golang 代码时遇到的报错。
error message
Command failed: could not find statement at /Users/../go_file.go:137, please use a line with a statement
reason
除了下面可能出错的原因外,还要检查调试的语句是否会被执行。 比如我要debug方法A&…
一.单元测试 1.1 go test工具 go语言中的测试依赖go test命令。编写测试代码和编写普通的Go代码过程类似,并不需要学习新的语法,规则和工具。 go test命令是一个按照一定约定和组织的测试代码的驱动程序。在包目录内,所有以_test.go为后缀名的…
1.对象的创建和使用
type Role struct {Id string json:"Id"RoleName string json:"RoleName"State uint json:"State"
}
var u new(Role)
var role Role
var data []Role
structObj : Role{}2.对象和orm的使用
func TestSelectOn…
1、gopool简介
Repository:https://github.com/bytedance/gopkg/tree/develop/util/gopool gopool is a high-performance goroutine pool which aims to reuse goroutines and limit the number of goroutines. It is an alternative to the go keyword. gopool的…
题目: 题解:
func myAtoi(s string) int {abs, sign, i, n : 0, 1, 0, len(s)//丢弃无用的前导空格for i < n && s[i] {i}//标记正负号if i < n {if s[i] - {sign -1i} else if s[i] {sign 1i}}for i < n && s[i] >…
题目: 题解:
func removeNthFromEnd(head *ListNode, n int) *ListNode {dummy : &ListNode{0, head}first, second : head, dummyfor i : 0; i < n; i {first first.Next}for ; first ! nil; first first.Next {second second.Next}second.N…
遇到问题
创建go项目时使用 go mod init 命令提示如下错误: go: cannot determine module path for source directory /Users/easton/go/basic-go (outside GOPATH, module path must be specified) 解决方案一
这是因为go mod init 初始化项目时,需要…
在 Go 语言中,GOPATH 和 GOROOT 是两个重要的环境变量,它们分别用于指定工作区和 Go 的安装路径。
GOPATH:
GOPATH 是指定 Go 工作区(workspace)的环境变量。工作区是指包含 Go 源代码、库以及生成的可执行文件等的目…
go入门
安装
去官网
上手
使用 go run xxx.go执行go文件
package mainimport "fmt"func main() {fmt.Println("hello world")
}引入三方库
使用 go get 命令
go get rsc.io/quote问题
下载依赖(go get rsc.io/quote )下不下…
1.函数
1.1.入参和出参
package main
import ("fmt"
)func main() {a, b : test16("test1", "test2")fmt.println(a, b)
}func test16(a string, b string) (string, string) {return a, b
}结果:
test1 test2说明: 和…
完整课程请点击以下链接
Go 语言项目开发实战_Go_实战_项目开发_孔令飞_Commit 规范_最佳实践_企业应用代码-极客时间
在Go语言中,虽然没有像其他面向对象语言(如Java或C)中那样的显式的类继承和多态机制,但通过接口和方法的组合…
sync.Once简介
sync.Once 是一个会执行且仅执行一次动作的对象。该对象在第一次使用后不能再被复制。
在 Go 内存模型的术语中,sync.Once 的 Do 方法中的函数 f 返回的操作,相对于任何对 once.Do(f) 的调用返回的操作,都具有“同步优先”的…