GO - 技术教程文章

golang利用切片实现栈操作,附例子【代码】

记录golang利用切片实现栈操作,附例子如下 //init stack as string type slice,send data of string with space splite //return a stack with data func InitWithStringSpliteSpace(stack []string, s string) []string {for _, v := range strings.Split(s, " ") {stack = append(stack, v)}return stack }//push a data on top of stack //return a stack with data func PushTop(stack []string, top string) []string {retur...

go语言lru实现【代码】

package ttlruimport "container/list"type Cache struct {MaxEntries intll *list.Listcache map[interface{}]*list.Element }func New(maxEntries int) *Cache {return &Cache{MaxEntries: maxEntries,ll: list.New(),cache: make(map[interface{}]*list.Element),} }type entry struct {key interface{}value interface{} }func (c *Cache)Add(key,value interface{}) {if c.cache == nil {c.cache = make(map...

Golang用skywalking全链路追踪【代码】

Golang用skywalking全链路追踪 1.docker安装 (1.)ElasticSearch (https://hub.docker.com/_/elasticsearch): docker pull docker.elastic.co/elasticsearch/elasticsearch:7.9.3docker run -d --name elasticsearch --rm -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.9.3(2.)skywalking (https://hub.docker.com/r/apache/skywalking-oap-server) docker pull ap...

Golang爬虫入门系列(一)【代码】【图】

0x0 读前tips 本文阅读前置需求:golang基本语法,html、css、js基础知识。听说过正则表达式和golang的http。 本文写作目的:记录一次极简爬虫脚本入门向开发。仅供学习使用,不可对网站造成损失。 0x1 初识爬虫 wiki:网络爬虫(web crawler,spider),是一种用来自动浏览万维网的网络机器人。其目的一般为编纂网络索引,如:网络搜索引擎等站点通过爬虫软件更新自身的网站内容或其对其他网站的索引。网络爬虫可以将自己所访问的页...

剑指Offer32-2 从上到下打印二叉树2Golang版【代码】

剑指Offer32-2 从上到下打印二叉树2Golang版 1. 问题描述 从上到下按层打印二叉树,同一层的节点按从左到右的顺序打印,每一层打印到一行。 例如: 给定二叉树: [3,9,20,null,null,15,7], 3 / 9 20 / 15 7 返回其层次遍历结果: [ [3], [9,20], [15,7] ] 提示: 节点总数 <= 1000 2. 思路按层打印: 题目要求的二叉树的 从上至下 打印(即按层打印),又称为二叉树的 广度优先搜索(BFS)。BFS 通常借助 队列 的先入先出特性来实现...

我要偷偷的学Go语言,然后惊呆所有人(第一天)【代码】【图】

标题无意冒犯,就是觉得这个广告挺好玩的 上面这张思维导图喜欢就拿走目录 文章目录 目录什么是Go语言1.1 简单1.2 可靠1.3 高效 Go语言的安装2.1 Linux/Ubuntu 18.042.2 关于环境变量:2.3 良好的目录结构: 开始我们的第一个例子稍稍分析一下:什么是Go语言 打开Go语言的官网我们可以看到这样一句话: Go是一种开源编程语言,可以轻松构建简单,可靠,高效的软件。 显然这句话中有三个关键字:简单,可靠,高效。 1.1 简单 Go语言...

Golang|for【代码】

for 循环 循环在所有语句最基础的结构,在Go语言中也不例外,但是在Go语言中,只有一种循环结果,没有 do-while 结构的循环,while 结构的循环被 for {} 代替。 在Go语言中,for循环也因些变的更加的灵活,更加的好用。 跟据条件判断的 for 循环 无初始化func main() {i := 1for i < 5 {i++fmt.Println("i = ", i)}}Go语言中,if 语句,for 语句,switch 语句后面的条件判断都不用加 ( ) ,直接写判断条件就可以,这也是Go语言简单的...

极限挑战logo的制作教程【图】

大家好,这里是demo软件园,今天为大家分享极限挑战logo的制作教程。 喜欢极限挑战,所以尝试着做了下鸡条的LOGO!!! 效果图: 素材: 操作步骤:      1、打开【PS】,新建画布,画出如下的形状,并添加图层样式【内阴影】【内发光】【渐变叠加】;之后复制两层六边形的图层,最顶上【ctrl+t】自由变换,等比例缩放至合适的位置。选择中间图层,ctrl+鼠标单击顶层图层,调出选区,然后删除。把最顶上图层也一并删除,然后...

剑指Offer18. 删除链表的节点Golang版【代码】

剑指Offer18. 删除链表的节点Golang版 1. 问题描述 给定单向链表的头指针和一个要删除的节点的值,定义一个函数删除该节点。 返回删除后的链表的头节点。 注意:此题对比原题有改动 示例 1: 输入: head = [4,5,1,9], val = 5 输出: [4,1,9] 解释: 给定你链表中值为 5 的第二个节点,那么在调用了你的函数之后,该链表应变为 4 -> 1 -> 9. 示例 2: 输入: head = [4,5,1,9], val = 1 输出: [4,5,9] 解释: 给定你链表中值为 1 的第三个...

剑指Offer 16.数值的整数次方Golang版【代码】

剑指Offer 16.数值的整数次方Golang版 1. 问题描述 实现 pow(x, n) ,即计算 x 的 n 次幂函数(即,xn)。不得使用库函数,同时不需要考虑大数问题。 示例 1: 输入:x = 2.00000, n = 10 输出:1024.00000 示例 2: 输入:x = 2.10000, n = 3 输出:9.26100 示例 3: 输入:x = 2.00000, n = -2 输出:0.25000 解释:2-2 = 1/22 = 1/4 = 0.25 提示: -100.0 < x < 100.0 -231 <= n <= 231-1 -104 <= xn <= 104 2. 思路 2.1. 思路1...

[Golang]-9 Go Bulid 打包报错:A connection attempt failed……解决方法【代码】

目录现象原因解决方法 现象 打包出现下面的错误 go buildgo: github.com/auth0/go-jwt-middleware@v0.0.0-20190805220309-36081240882b: Get "https://proxy.golang.org/github.com/auth0/go-jwt-middleware/@v/v0.0.0-20190805220309-36081240882b.mod": dial tcp 216.58.200.241:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established con...

go 中new 和 make 的区别【代码】

1. new(T)返回的是指针,*T 指向T的零值(nil),并未初始化或叫实力化; 2. make (T) 返回的是初始化后的T 对象,可以直接用,只能用于slice,map,channel。但注意它是引用类型,与python中可变类型相似。 3. 值类型是int,string等类似于python的不可变类型。 n := make(map[string]int) n1 := new(map[string]int) fmt.Println(n) // map[]fmt.Println(&n) // &map[]fmt.Println(n1) // &map[]fmt.Println(*n1) // m...

小白学golang-格式化动作(%v)【代码】

中文社区文档:https://studygolang.com/pkgdoc 通用: %v 值的默认格式表示 %+v 类似%v,但输出结构体时会添加字段名 %#v 值的Go语法表示 %T 值的类型的Go语法表示 %% 百分号布尔值: %t 单词true或false整数: %b 表示为二进制 %c 该值对应的unicode码值 %d 表示为十进制 %o 表示为八进制 %q 该值对应的单引号括起来的go语法字符字面值,必要时会采用安全的转义表示 %x 表示为十六进制,使用a-f %X 表示为十六进制,使用A-F %U 表...

2021-03-11:go中,协程内部再启用协程,它们是没关系,对吧?外部协程奔溃,内部协程还会执行【代码】【图】

2021-03-11:go中,协程内部再启用协程,它们是没关系,对吧?外部协程奔溃,内部协程还会执行吗?外部协程执行结束的时候,如何让内部协程也停止运行?golang原生提供的包里,让内部协程停止运行,如何实现?福哥答案2021-03-11:1.外部协程和内部协程没关系。2.如果程序不奔溃,不会影响内部协程继续执行。如果没做特殊处理,整个程序会奔溃。3.三种方式:共享变量作为标志位,通道,上下文context。这三种方式均是协作式中断,不...

2021-03-11:go中,协程内部再启用协程,它们是没关系,对吧?外部协程奔溃,内部协程还会执行【代码】【图】

2021-03-11:go中,协程内部再启用协程,它们是没关系,对吧?外部协程奔溃,内部协程还会执行吗?外部协程执行结束的时候,如何让内部协程也停止运行?golang原生提供的包里,让内部协程停止运行,如何实现?福哥答案2021-03-11:1.外部协程和内部协程没关系。2.如果程序不奔溃,不会影响内部协程继续执行。如果没做特殊处理,整个程序会奔溃。3.三种方式:共享变量作为标志位,通道,上下文context。这三种方式均是协作式中断,不...

Go语言:常用限流策略——漏桶与令牌桶介绍【代码】【图】

限流又称为流量控制(流控),通常是指限制到达系统的并发请求数,本文列举了常见的限流策略,并以gin框架为例演示了如何为项目添加限流组件。 限流 限流又称为流量控制(流控),通常是指限制到达系统的并发请求数。 我们生活中也会经常遇到限流的场景,比如:某景区限制每日进入景区的游客数量为8万人;沙河地铁站早高峰通过站外排队逐一放行的方式限制同一时间进入车站的旅客数量等。 限流虽然会影响部分用户的使用体验,但是却...

对PageRank、Personalized PageRank、PPNP、PPRGO的一些理解【图】

对PageRank、Personalized PageRank、PPNP、PPRGO的一些理解本文仅记录个人在入门GNN时对上述几个模型的一点理解与归纳,如有错误欢迎指正!以上是对几个模型的概括性的介绍,若想详细了解还请看原论文。 PPNP、PPRGO论文及本PPT下载地址: 链接:https://pan.baidu.com/s/1ecevD5hnBBf0s_qPTkhk9Q 提取码:fkaz

漫画Go语言包使用的注意事项和细节【图】

赖思与甜甜,有趣有料有温度,技术学习有思路! Go提供了便利的包形式,项目合作开发过程中,包的使用有哪些使用细节及注意事项? 让赖思来给我们详细的讲一下吧!包的本质实际上就是文件夹,存放着程序文件。如图:go_research 项目目录下,有多个不同的文件夹,代表不同的功能包。 不同功能的包下的函数,导入后,通过包名.函数名即可调用。所以即使重名,只要所属不同的包,就是没问题的。 例如:分别在db包和util包中定义Call函...

goland: 从0到1创建一个hello word工程【代码】【图】

前言 目前go语言的开发方式主要有3种:IDE软件GolandVS Codego命令如果我们只是想简单的体验一下go语言,用go命令即可,比如: go build main.go go run main.goVS Code是一个通用的IDE,虽然支持golang开发,但是不如Goland功能全面,毕竟Goland是专门的Go语言开发IDE。 每个IDE都有一些独特的设置,因为go是一门年轻的语言,所以goland的相关教程有点少,涉及到一些概念,对于有C开发经验的人来说,从0到1的创建工程,反而有点困难...

基于DDD的golang实现【图】

平台开发 360云计算 女主宣言今天小编为大家分享基于DDD的golang实现,DDD即领域驱动设计,该模式也算是比较热门的话题了。希望通过本篇文章,大家能够掌握DDD模式,能对大家有所帮助。PS:丰富的一线技术、多元化的表现形式,尽在“360云计算”,点关注哦!领域驱动设计模式算是比较热门的话题了。领域驱动设计(DDD)是一种软件开发方法,通过将实现与不断演变的模型相连接,简化了开发人员面临的复杂性。本文不会重点去解释Gola...

golang-protobuf配置和使用【代码】【图】

1.下载对应zip包, 解压 https://github.com/protocolbuffers/protobuf/releases -2. 配置环境变量: 在用户系统变量Path最后添加刚刚解压的bin目录,例如: G:\soft\protobuf\bin -3. 验证是否配置正确: 打开终端,输入protoc,如果输出下面内容,代码配置成功。 4.安装protoc-gen-go库 在此之前要设置go的环境变量: GO111MODULE=on GOPROXY=https://goproxy.cn,direct 然后: go get github.com/golang/protobuf/protoc-gen-go 5...

后起之秀go语言你了解吗?助你年薪30W+【图】

前言随着云计算越来越普及,企业原来以内部IDC机房为载体的IT基础架构也逐渐发生了很大的变化,企业的业务系统除了部署在原来物理架构外,可能部署在vMware私有云、spenstack,私有云、阿里云公有云、AWS公有云、腾讯云、Azure等等各种云平台之上,形成了更加复杂在多云1T基础架构。那么我们该如何对多云主机进行管理和运维呢?今天我们就给大家分享一个Go语言的案例。一、项目思路整个代码的实现思路其实很简单,首先,每个云平台...