2022年11月 第12页
  • xdm,我们都知道golang是天生的高并发,高效的编译型语言可我们也都可知道,工具再好,用法不对,全都白费,我们来举2个常用路径来感受一下struct和map用谁呢?计算量很小的时候,可能看不出使用临时struct和map的耗时差距,但是数量起来了,差距就明显了,且会随着数量...

    使用教程 2022-11-25
  • Golang开发命令行之flag包的使用方法

    1、命令行工具概述日常命令行操作,相对应的众多命令行工具是提高生产力的必备工具,鼠标能够让用户更容易上手,降低用户学习成本。而对于开发者,键盘操作模式能显著提升生产力,还有在一些专业工具中,大量使用快捷键代替繁琐的鼠标操作,能够使开发人员更加专注于工作,提高效率,因为键盘操作模式更容易产生肌肉记忆...

    使用教程 2022-11-25
  • Golang标准库和外部库的性能比较

    前言:我已经在生产中使用Go一段时间了,因为它的构建规模较小,并且由goroutines提供的并发性能以及直接在机器上运行构建的能力,所以我非常喜欢它的快速和可靠。由于标准包的速度非常快,您可以在不使用任何第三方库或框架的情况下构建生产就绪的微服务。这并不是说Go中没有提供更多灵活性或速度的框架...

    使用教程 2022-11-25
  • go语言编程学习实现图的广度与深度优先搜索

    图的实现所谓图就是节点及其连接关系的集合。所以可以通过一个一维数组表示节点,外加一个二维数组表示节点之间的关系。//图的矩阵实现typedefstructMGRAPH{nodesint[];//节点edgesint[][];//边}mGraph;...

    使用教程 2022-11-25
  • Go语言中的encoding/json库提供了复杂的将Go中各种类型与JSON格式之间转换的功能,我们主要使用以下几个功能:将一个切片、结构体或字典序列化成JSON格式的字符串【字节流】。将一个JSON格式的字符串【字节流】反序列化成一个切片、结构体或字典。序列化序列...

    使用教程 2022-11-25
  • 方法和接收者Go语言中的方法(Method)是一种作用于特定类型变量的函数。这种特定类型变量叫做接收者(Receiver)。接收者的概念就类似于其他语言中的this或者self。Go语言中同时有函数和方法。一个方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针。所...

    使用教程 2022-11-25
  • 1、标识符与关键字在了解数据类型之前,先了解一下go的标识符和关键字1.1标识符在编程语言中标识符就是定义的具有某种意义的词,比如变量名、常量名、函数名等等。Go语言中标识符允许由字母数字和_(下划线)组成,并且只能以字母和_开头:abc,_,_123,a123。1.2关键字关键...

    使用教程 2022-11-25
  • Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现。map是一种无序的键值对的集合。map最重要的一点是通过key来快速检索数据,key类似于索引,指向数据的值map是一种集合,所以可以像迭代数组和切片那样迭代它。不过,map是无序的,无法决定它的返回顺序,这是因为map...

    使用教程 2022-11-25
  • Golang中channel的原理解读(推荐)

    数据结构channel的数据结构在$GOROOT/src/runtime/chan.go文件下:typehchanstruct{qcountuint//当前队列中剩余元素个数dataqsizuint//环形队列长度...

    使用教程 2022-11-25
  • 1、自定义类型在Go语言中有一些基本的数据类型,如string、整型、浮点型、布尔等数据类型,Go语言中可以使用type关键字来定义自定义类型。type是Go语法里的重要而且常用的关键字,type绝不只是对应于C/C++中的typedef。搞清楚type的使用,就容易理解go语言中的核...

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

    使用教程 2022-11-25
  • Go 并发读写 sync.map 详细

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

    使用教程 2022-11-25
  • 关于Go 是传值还是传引用?

    关于Go是传值还是传引用?很多人都讨论起来下面我们就带着问题一起探索答案吧1、Go官方的定义本部分引用Go官方FAQ的“Whenarefunctionparameterspassedbyvalue?”,内容如下。如同C系列的所有语言一样,Go语言中的所有东...

    使用教程 2022-11-25
  • 关于Go 空结构体的 3 种使用场景

    前言:在Go语言中,有一个比较特殊的类型,经常会有刚接触Go的小伙伴问到,又或是不理解。他就是Go里的空结构体(struct)的使用,常常会有看到有人使用:ch:=make(chanstruct{})还清一色的使用结构体,也不用其他类型。高度常见,也就不是一个偶发现象了,...

    使用教程 2022-11-25
  • Golang 利用反射对结构体优雅排序的操作方法

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

    使用教程 2022-11-25
  • 一、for循环Go语言中没有while循环,只有一个for循环for变量初始化;条件;变量自增/自减{循环体内容}1、基本使用fori:=0;i<10;i++{fmt.Println(i)}2、省略第一部分...

    使用教程 2022-11-25
  • Go语言之Goroutine与信道异常处理

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

    使用教程 2022-11-25
  • 一、数组数组是同一类型元素的集合,可以放多个值,但是类型一致,内存中连续存储Go语言中不允许混合不同类型的元素,而且数组的大小,在定义阶段就确定了,不能更改1、数组的定义//定义一个大小为3的string类型和int8类型的数组,里面可以放3个字符串和3个数字varnames[3]s...

    使用教程 2022-11-25
  • 一、结构体结构体是一系列属性的集合(类似于Python中的类)1、结构体的定义与使用//定义typePersonstruct{NamestringAgeintSexstring}funcmain(){//使用v...

    使用教程 2022-11-25
  • 接口对象的转型有两种方式:1.方式一:instance,ok:=接口对象.(实际类型)  如果该接口对象是对应的实际类型,那么instance就是转型之后对象,ok的值为true  配合if...elseif...使用2.方式二:  接口对象.(type)  配合switch...case...

    使用教程 2022-11-25
  • 接口就是一系列方法的集合(规范行为)在面向对象的领域里,接口一般这样定义:接口定义一个对象的行为,规范子类对象的行为。在Go语言中的接口是非侵入式接口(接口没了,不影响代码),侵入式接口(接口没了,子类报错)Go也是鸭子类型,比如我现在有个鸭子类,内有speak方法和run方法,子类只要实...

    使用教程 2022-11-25
  • 1.什么叫可寻址?可直接使用&操作符取地址的对象,就是可寻址的(Addressable)。比如下面这个例子funcmain(){name:="iswbm"fmt.Println(&name)//output:0xc000010...

    使用教程 2022-11-25
  • 前言:随着编程语言的发展,Go还很年轻。它于2009年11月10日首次发布。其创建者RobertGriesemerRobPike和KenThompson在Google工作,在那里大规模扩展的挑战激励他们将Go设计为一种快速有效的编程解决方案,用于具有大型代码库、管理由多个开发人...

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

    使用教程 2022-11-25