共有3914页,39138篇文章。

go语言杂谈

go学习六·集合(Map)

本系列记录的是本人第二次学习go语言的经验,所以如果对于go一点都不了解的可以先去认真的过一遍go的基础,基础教程大家可以去看 https://github.com/rubyhan1314/Golang-100-Days,这个系列的基础是我在这个帖子的基础上总结或者摘录过来的 1.1 什么是Map map是Go中的内置类型,它将一个值与一个键关联起来。可以使用相应的键检索值。 Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值 Map 是一种集合,所以我们可以像迭代数组和切片那样迭代它。不过,Map...

阅读该文章
go语言杂谈

go学习五·切片

本系列记录的是本人第二次学习go语言的经验,所以如果对于go一点都不了解的可以先去认真的过一遍go的基础,基础教程大家可以去看 https://github.com/rubyhan1314/Golang-100-Days,这个系列的基础是我在这个帖子的基础上总结或者摘录过来的 1.1 什么是切片 Go 语言切片是对数组的抽象。 Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大 切片是一种方便、灵活且强大的...

阅读该文章
go语言杂谈

Go fmt

格式化 Golang的fmt包中含有格式化I/O函数,类似于C语言中的printf和scanf。 函数 描述 fmt.Print 输出到控制台,不接受任何格式化操作。 fmt.Println 输出到控制台并换行 fmt.Printf 仅打印出格式化的字符串 fmt.Sprintf 格式化并返回一个字符串而不带任何输出 fmt.Fprintf 格式化并输出到io.Writer而非io.Stdout 占位符 普通占位符 描述 %v 值的默认格式 %+v 打印结构体时会添加字段名 %#v 相应值的Golang语法表示 ...

阅读该文章
go语言杂谈

Go bool

布尔值是以数学家George Boole命名 编程中使用布尔值进行比较或控制流程,布尔值表示与数学逻辑分支相关的真值。 计算机中布尔类型值常用于条件判断的逻辑,逻辑值只有两种分别为真和假。 逻辑值 Golang中以bool类型声明布尔型数据,布尔型数据只有true和false两个常量值。 逻辑值 描述 true 真 false 假 布尔类型变量的默认值为false var flag bool fmt.Printf("flag = %v, type = %T\n", flag, flag)//flag = false, t...

阅读该文章
go语言杂谈

Go context

控制并发有两种经典的方式:WaitGroup和Context WaitGroup:控制多个Goroutine同时完成 Context:并发控制和超时控制的标准做法 WaitGroup WaitGroup控制多个Goroutine同时完成,适用于多个Goroutine协同完成一项任务时,由于每个Goroutine做的都是整体的一部分,只有全部Goroutine都完成,整个任务才算完成,因此会采用等待组的方式。 var wg sync.WaitGroup wg.Add(2) go func(){ defer wg.Done() time.Sleep(t...

阅读该文章
go语言杂谈

新入职的P7开发的第一个功能,刚上线就崩了,只因忽视这件事

众所周知,在互联网时代,设计接口都要考虑高并发冲击,如果对接口没有限流,那可能会万劫不复,结果就是P0背回家,一年白干。 限流简介 现在说到高可用系统,都会说到高可用的保护手段:缓存、降级和限流,本博文就主要说说限流。限流是流量限速(Rate Limit)的简称,是指只允许指定的事件进入系统,超过的部分将被拒绝服务、排队或等待、降级等处理。对于server服务而言,限流为了保证一部分的请求流量可以得到正常的响应,总好过全部的请求都不能得到响应,甚至导致系统雪崩。限流与熔断经常被人弄混,博主认为它们最大的区别在于限流主要在server实现,而熔断主要在client实现,当...

阅读该文章
go语言杂谈

Play with Go

在开始学习 Go 语言之后,我发现 Go 语言对于初学者实在是太友好了。 Go 语言的文档很全面,可以说,在开始学习 Go 语言的时候,直接通过 Go 的文档开始就可以了,比如从 A tour of Go , 就是一份很不错的入门教程,可以直接在网页端的交互式学习,都不需要在本地安装 Go 的环境,而且里面的知识点覆盖的很全面,跟完整个教程之后,对 Go 就有了一个基本的了解。 还有 Go blog 也很很不错,Go 语言的最新动态,版本的发布,特性的更新,都会第一时间在这里更新。 当学完 A tour of Go 之后,需要开始进一步的学习,play-w...

阅读该文章
go语言杂谈

全球首发特性,goproxy.io 支持海外私有库代理了

介绍goproxy.io 是 Go 语言公共的镜像代理服务,在中国乃至全球有众多 Go 语言开发者使用。现在给大家介绍一下 goproxy.io Private 功能,通过这个功能,开发者可以同时缓存并加速自己海外的私有仓库和公有仓库。 使用指南首先,登录 https://user.goproxy.io,通过 github OAuth 进行登录,无需注册, 点击授权后,登录成功, 如下图所示。 登录成功后,点击 “New Repo” 新增自己的私有仓库授权,将 goproxy.io 生成的公钥添加到自己的私有仓库中。 在 Repo URL 中添加自己已经存在的私有仓库...

阅读该文章
go语言杂谈

Golang 中字典的 Comma Ok 是如何实现的

本文字数:2297 字 精读时间:6 分钟 也可在 3 分钟内完成速读 众所周知,Golang 中函数的返回值的数量是固定的,而不是像 Python 中那样,函数的返回值数量是不固定的。 如果我们把 Golang 中对 map 的取值看作是一个函数的话,那么直接取值和用 comma ok 方式取值的实现就变得很意思。 Golang 中 map 的取值方式 v1, ok := m["test"] v2 := m2["test"] 先看看汇编是如何实现的。 package main import "log" func ...

阅读该文章
go语言杂谈

gops 是怎么和 Go 的运行时进行交互的?

原文地址:https://medium.com/a-journey-with-go/go-how-does-gops-interact-with-the-runtime-778d7f9d7c18 本文基于 Go 1.13 和 gops 0.3.7. gops 旨在帮助开发人员诊断 Go 流程并与之交互。它提供了跟踪运行中的程序几秒钟的功能,可以通过获取 CPU 配置文件 pprof,甚至可以直接与垃圾收集器进行交互。 发现gops 提供发现服务,该服务能够列出计算机上运行的 Go 进程。gops 不带参数运行仅显示 Go 进程。为了举例说明,我启动了一个程序,该程序可...

阅读该文章

推荐图集: