这是网站公告,主题配置修改

链接01链接02链接03

使用教程 第64页


11月25日

Go语言并发编程 sync.Once

作者:administrator 分类:使用教程 浏览:901 评论:0

sync.Once用于保证某个动作只被执行一次,可用于单例模式中,比如初始化配置。我们知道init()函数也只会执行一次,不过它是在main()函数之前执行,如果想要在代码执行过程中只运行某个动作一次,可以使用sync.Once,下面来介绍...

11月25日

Go 并发读写 sync.map 详细

作者:administrator 分类:使用教程 浏览:952 评论:0
Go 并发读写 sync.map 详细

map 的两种目前在业界使用的最多的并发支持的模式分别是: 原生 map + 互斥锁或读写锁 mutex。 标准库 sync.Map(Go1.9及以后)。 有了选择,总是有选择困难症的,这两种到底怎么选,谁的性能更加的好?...

11月25日

关于Go 是传值还是传引用?

作者:administrator 分类:使用教程 浏览:897 评论:0
关于Go 是传值还是传引用?

关于Go 是传值还是传引用?很多人都讨论起来 下面我们就带着问题一起探索答案吧 1、Go 官方的定义 本部分引用 Go 官方 FAQ 的 “When are function parameters passed by va...

11月25日

关于Go 空结构体的 3 种使用场景

作者:administrator 分类:使用教程 浏览:926 评论:0
关于Go 空结构体的 3 种使用场景

前言: 在 Go 语言中,有一个比较特殊的类型,经常会有刚接触 Go 的小伙伴问到,又或是不理解。 他就是 Go 里的空结构体(struct)的使用,常常会有看到有人使用: ch := make(chan struct{})...

11月25日

Golang 利用反射对结构体优雅排序的操作方法

作者:administrator 分类:使用教程 浏览:925 评论:0
Golang 利用反射对结构体优雅排序的操作方法

最近开始实习,工作技术栈主要Python和Golang,目前的任务把Python模块重构为GO模块,然后出现了一个问题,就是要将一个结构体按结构体中各个字段进行排序,然后写入Redis,对于Pyhon来说for循环就能解决,但是对于Go语言...

11月25日

Go语言之fo循环与条件判断

作者:administrator 分类:使用教程 浏览:904 评论:0

一、for循环 Go 语言中没有 while 循环,只有一个 for 循环 for 变量初始化;条件;变量自增/自减 { 循环体内容 } 1、基本使用 for i := 0; i < 10; i++...

11月25日

Go语言之Goroutine与信道异常处理

作者:administrator 分类:使用教程 浏览:802 评论:0
Go语言之Goroutine与信道异常处理

一、Goroutine Go 协程可以看做成一个轻量级的线程,Go 协程相比于线程的优势: Goroutine 的成本更低大小只有 2 kb 左右,线程有几个兆。 Goroutine 会复用线程,比如说:我有 100 个协程,但是都是...

11月25日

详细介绍Go语言之数组与切片

作者:administrator 分类:使用教程 浏览:809 评论:0

一、数组 数组是同一类型元素的集合,可以放多个值,但是类型一致,内存中连续存储 Go 语言中不允许混合不同类型的元素,而且数组的大小,在定义阶段就确定了,不能更改 1、数组的定义 // 定义一个大小为3的string类型和int...

11月25日

Go语言之结构体与方法

作者:administrator 分类:使用教程 浏览:796 评论:0

一、结构体 结构体是一系列属性的集合(类似于 Python 中的类) 1、结构体的定义与使用 // 定义 type Person struct { Name string Age int Sex stri...

11月25日

golang中接口对象的转型两种方式

作者:administrator 分类:使用教程 浏览:929 评论:0

接口对象的转型有两种方式: 1. 方式一:instance,ok:=接口对象.(实际类型)   如果该接口对象是对应的实际类型,那么instance就是转型之后对象,ok的值为true   配合if...else if...使用 2....

11月25日

Go语言的接口详解

作者:administrator 分类:使用教程 浏览:819 评论:0

接口就是一系列方法的集合(规范行为) 在面向对象的领域里,接口一般这样定义:接口定义一个对象的行为,规范子类对象的行为。 在 Go 语言中的接口是非侵入式接口(接口没了,不影响代码),侵入式接口(接口没了,子类报错) Go 也是鸭子类...

11月25日

一文理解Go 中的可寻址和不可寻址

作者:administrator 分类:使用教程 浏览:914 评论:0

1. 什么叫可寻址? 可直接使用 & 操作符取地址的对象,就是可寻址的(Addressable)。比如下面这个例子 func main() { name := "iswbm" fmt.Println(...

11月25日

Go语言区别于其他语言的特性

作者:administrator 分类:使用教程 浏览:908 评论:0

前言: 随着编程语言的发展,Go 还很年轻。它于 2009 年 11 月 10 日首次发布。其创建者Robert Griesemer Rob Pike 和 Ken Thompson在 Google 工作,在那里大规模扩展的挑战激励他们将...

11月25日

Go语言并发编程之互斥锁Mutex和读写锁RWMutex

作者:administrator 分类:使用教程 浏览:809 评论:0

在并发编程中,多个Goroutine访问同一块内存资源时可能会出现竞态条件,我们需要在临界区中使用适当的同步操作来以避免竞态条件。Go 语言中提供了很多同步工具,本文将介绍互斥锁Mutex和读写锁RWMutex的使用方法。 一、互斥锁Mu...

11月25日

Go select 死锁的一个细节

作者:administrator 分类:使用教程 浏览:907 评论:0
Go select 死锁的一个细节

下面对是一个 select 死锁的问题 package main import "sync" func main() { var wg sync.WaitGroup foo := make(chan int)...

11月25日

Go官方工具链用法详解

作者:administrator 分类:使用教程 浏览:950 评论:0

Go官方工具链 为了从任意目录运行Go官方工具链中工具命令(通过go命令), Go官方工具链安装目录下的bin子目录路径必须配置在PATH环境变量中。 当使用安装程序安装Go官方工具链时,安装程序很可能已经自动地将此配置好了。window...

11月25日

Go语言--切片(Slice)详解

作者:administrator 分类:使用教程 浏览:921 评论:0
Go语言--切片(Slice)详解

说明: Go 语言切片是对数组的抽象。 Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增...

11月25日

golang交叉编译详细

作者:administrator 分类:使用教程 浏览:931 评论:0
golang交叉编译详细

1、环境变量对照表 golang交叉编译环境变量对照表 GOOS | GOARCH | OS VERSION ---|---|--- linux | 386 / amd64 / arm | >= Linux 2....

11月25日

Go 泛型和非泛型代码详解

作者:administrator 分类:使用教程 浏览:815 评论:0

1. 开启泛型 在 Go1.17 版本中,可以通过: export GOFLAGS="-gcflags=-G=3" 或者在编译运行程序时加上: go run -gcflags=-G=3 main.go...

11月25日

Go语言基础语法之结构体及方法详解

作者:administrator 分类:使用教程 浏览:919 评论:0

结构体类型可以用来保存不同类型的数据,也可以通过方法的形式来声明它的行为。本文将介绍go语言中的结构体和方法,以及“继承”的实现方法。 结构体类型 结构体类型(struct)在go语言中具有重要地位,它是实现go语言面向对象编程的重要工...

11月25日

Go并发编程实现数据竞争

作者:administrator 分类:使用教程 浏览:904 评论:0
Go并发编程实现数据竞争

1.前言 虽然在 go 中,并发编程十分简单, 只需要使用 go func() 就能启动一个 goroutine 去做一些事情,但是正是由于这种简单我们要十分当心,不然很容易出现一些莫名其妙的 bug 或者是你的服务由于不知名的原因就重...

11月25日

Go语言中CGO的使用实践

作者:administrator 分类:使用教程 浏览:919 评论:0
Go语言中CGO的使用实践

       部门产品业务功能采用Golang开发,但是有些功能是用c写的,比如说net-snmp,bfd协议等等,像这些如果使用GO语言重编的话,既有实现的复杂度也需要...