GoLang
文章平均质量分 66
GoLang是一门由 Google 设计并开发的开源编程语言。由于其简洁、高效和并发支持等特点,GoLang 在云计算、网络服务和分布式系统等领域得到了广泛应用。以下是关于 GoLang 的一些重要特性和优势
奔跑的蜗牛.
每天进步一点点
展开
-
Go语言 fmt 包:格式化输出的利器
【代码】Go语言 fmt 包:格式化输出的利器。原创 2023-12-14 11:56:11 · 283 阅读 · 0 评论 -
玩转 Go 语言并发编程:Goroutine 实战指南
【代码】玩转 Go 语言并发编程:Goroutine 实战指南。原创 2023-12-12 13:11:39 · 312 阅读 · 0 评论 -
使用 Go Modules 管理依赖:简明教程
包(package)是多个 Go 源码的集合,是一种高级的代码复用方案Go 语言为我们提供了很多内置包,如 fmt、strconv、strings、sort、errors、times、encoding/json、os、io 等Golang 中的包可以分为三种,1、系统内置包2、自定义包3、第三方包系统内置包fmt、strconv、strings、sort、errors、time、encoding/json、os、io 等自定义包开发者自己写的包第三方包。原创 2023-12-05 13:26:03 · 415 阅读 · 0 评论 -
Go 协程基础:轻松入门并发编程,解析 Goroutines 的奥秘
wg.Done() //第三步:协程执行完毕,计数器-1。wg.Add(1) //第二步:开启一个协程计数器+1。wg.Wait() //第四步:计数器为0时退出。var wg sync.waitGroup //第一步:定义一个计数器。协程 统计 60001-90000。协程 统计 90001-120000。原创 2023-12-09 22:33:01 · 91 阅读 · 0 评论 -
Go中的延时执行魔法:深入浅出defer用法
关键字 defer 用于注册延迟调用这些调用直到 return 前才被执行,因此,可以用来做资源清理多个 defer 语句,按先进后出的方式执行defer 语句中的变量,在 defer 声明是就决定了。原创 2023-12-06 09:00:56 · 117 阅读 · 0 评论 -
Go语言异常处理:优雅应对错误,写出更可靠的代码
Golang 没有结构化异常。使用 panic 抛出错误,recover 捕获错误Go 中可以抛出一个 panic 的异常,然后在 defer 中通过 recover 捕获这个异常,然后正常处理panic 可以在任何地方引发,但 recover 只有在 defer 调用的函数中有效。原创 2023-12-06 13:39:14 · 232 阅读 · 0 评论 -
深入理解 Go 语言 Goroutine 的工作原理
【代码】深入理解 Go 语言 Goroutine 的工作原理。原创 2023-12-12 11:51:03 · 532 阅读 · 0 评论 -
Go并发编程:保障安全与解锁奥秘
【代码】Go并发编程:保障安全与解锁奥秘。原创 2023-12-11 14:24:26 · 511 阅读 · 0 评论 -
深入剖析Go语言中的Select语句:并发控制的精髓
【代码】深入剖析Go语言中的Select语句:并发控制的精髓。原创 2023-12-11 09:10:56 · 181 阅读 · 0 评论 -
深入理解 Go Channel:解密并发编程中的通信机制
【代码】深入理解 Go Channel:解密并发编程中的通信机制。原创 2023-12-09 22:34:09 · 245 阅读 · 0 评论 -
深入探讨Go语言协程调度:GRM模型解析与优化策略
一、线程调度1、早期单线程操作系统一切的软件都是跑在操作系统上,真正用来干活(计算)的是 CPU 早期的操作系统每个程序就是一个进程,直到一个程序运行完,才能进行下一个进程,就是“单进程时代” 一切的程序只能串行发生2、多进程/线程时代在多进程/多线程的操作系统中,就能解决了阻塞的问题,因为一个进程阻塞 cpu 可以立刻切换到其他进程中去执行 而且调度 cpu 的算法可以保证在运行的进程都可以被分配到 cpu 的运行时间片 这样从宏观来看,似乎多个进程是在同时被运行 但新的问题原创 2023-12-08 13:30:00 · 430 阅读 · 1 评论 -
Go语言中的轻量级并发利器:深入探索Goroutine的魅力
A.多线程程序在一个核的cpu上运行,就是并发B.多现程程序在多个核的cpu上运行,就是并行并发:本质还是串行并行:任务分布在不同cpu上,同一时间点同时执行。原创 2023-12-08 09:10:26 · 49 阅读 · 0 评论 -
Go语言中的装饰器模式:优雅增强功能,提升代码可维护性
Go语言中的装饰器模式:优雅增强功能,提升代码可维护性。原创 2023-12-07 13:13:06 · 177 阅读 · 0 评论 -
Go语言中的接口设计艺术:发现面向对象编程的无限可能
定义一个 Usber 接口让 Phone 和 Camera 结构实现这个接口//1、接口是一个规范start()stop()//2、如果接口里面有方法的话,必要要通过结构体或者通过自定义类型实现这个接口fmt.Println(p.Name, "启动")fmt.Println(p.Name, "关机")Name: "华为手机",var p1 Usber // golang中接口就是一个数据类型p1 = p // 表示手机实现Usb接口p1.start()p1.stop()/*原创 2023-12-07 08:51:43 · 702 阅读 · 0 评论 -
深入理解 Go 函数:从基础到高级
函数是组织好的、可重复使用的、用于执行指定任务的代码块Go 语言中支持:函数、匿名函数和闭包接下来我们来看一下语句块定义的变量,通常我们会在 if 条件判断,for 循环、switch 语句上使用这种定义变量的方式test2(1,2)fmt.PrintIn(x, y) //函数的参数也是只在本函数中生效if x > 0 {z := 100 //变量 z 只在 if 语句生效//fmt.Println(z)//此处无法使用变量 z4、for 循环语句中定义的变量。原创 2023-12-05 15:05:18 · 665 阅读 · 0 评论 -
掌握 Go 语言中的循环结构:从基础到高级
掌握 Go 语言中的循环结构:从基础到高级原创 2023-12-04 16:36:35 · 387 阅读 · 0 评论 -
深入理解 Go 语言中的接口(interface)
在 Go 语言中接口(interface)是一种类型,一种抽象的类型接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节实现接口的条件一个对象只要全部实现了接口中的方法,那么就实现了这个接口换句话说,接口就是一个需要实现的方法列表定义了一个 Usber 接口让 Phone 和 Camera 结构体实现这个接口//1、接口是一个规范start()stop()//2.如果接口里面有方法的话,必要通过结构体或通过自定义类型实现这个接口。原创 2023-12-04 16:11:28 · 606 阅读 · 1 评论 -
Go 语言中的结构体:定义、初始化与高级用法解析
Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性在Go语言中有一些基本的数据类型,如string、整型、浮点型、布尔等数据类型Go语言中可以使用type关键字来定义自定义类型将myInt定义为int类型,通过type关键字的定义,myInt就是一种新的类型,它具有int的特性类型别名与自定义类型表面上看只有一个等号的差异结果显示a的类型是main.newInt,表示main包下定义的newInt类型。原创 2023-12-02 13:52:45 · 716 阅读 · 0 评论 -
Go 指针
比如我们定义了一个变量a := 10,这个时候可以直接通过a这个变量来读取内存中保存的10这个值。指针也是一个变量,但它是一种特殊的变量,它存储的数据不是一个普通的值,而是另一个变量的内存地址。Go语言中的指针操作非常简单,我们只需要记住两个符合:&(取地址)和*(根据地址取值)变量的本质是给存储数据的内存地址起了一个好记的别名。在计算机底层a这个变量其实对应了一个内存地址。指针地址、指针类型、指针取值。原创 2023-11-30 23:31:25 · 354 阅读 · 1 评论 -
Go map类型
map是一种无须的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用Go语言中map的定义语法如下:map[KeyType]ValueType其中KeyType:表示键的类型ValueType:表示键对应的值的类型map类型的变量默认初始值为nil,需要使用make()函数来分配内存其中cap表示map的容量,该参数虽然不是必须的注意:获取map的容量不能使用cap,cap返回的是数组切片分配的空间大小,根本不能用于map。原创 2023-11-30 09:26:55 · 468 阅读 · 0 评论 -
GoLang切片
切片(Slice)是一个拥有相同类型元素的可变长度的序列它是基于数组类型做的一层封装它非常灵活,支持自动扩容切片是一个引用类型,它的内部结构包含地址、长度和容量声明切片类型的基本语法如下:name:表示变量名T:表示切片中的元素类型//切片是引用类型,不支持直接比较,只能和 nil 比较var a []string //声明一个字符串切片var b = []int{} //声明一个整型切片并初始化。原创 2023-11-29 23:00:36 · 413 阅读 · 0 评论 -
Go 数组
数组是指一系列同一类型数据的集合数组中包含的咩个数据被成为数组元素(element),这种类型可以是任意的原始类型,比如 int、string 等一个数组包含的元素格式被称为数组的长度在 Golang 中数组是一个长度固定的数据类型,数组的长度是类型的一部分,也就是[5]int和[10]int 是两个不同的类型Golang 中数组的另一个特点是占用内存的连续性,也就是说数组中的元素是被分配到连续的内存地址中的, 因而索引数组元素的速度非常快。原创 2023-11-28 15:44:26 · 242 阅读 · 0 评论 -
Go 数字类型
Go 语言中数据类型分为:基本数据类型和复合数据类型基本数据类型有:整型、浮点型、布尔型、字符串复合数据类型有:数组、切片、结构体、函数、map、通道(channel)、接口。原创 2023-11-27 22:23:05 · 690 阅读 · 0 评论 -
Go 内置运算符
【代码】Go 内置运算符。原创 2023-11-27 13:24:04 · 369 阅读 · 1 评论 -
Go字符串类型
uint8 类型,或者叫 byte 型:代表了 ASCII 码的一个字符。rune 类型:代表一个 UTF-8 字符。原创 2023-11-28 13:37:20 · 275 阅读 · 0 评论 -
Go 基本数据类型
【代码】Go 基本数据类型。原创 2023-11-27 13:48:27 · 336 阅读 · 1 评论 -
Go 基本语法
Go(又称 Golang)是一门由 Google 设计的开源编程语言,以其简洁、高效和并发支持而受到广泛关注。本文将介绍 Go 语言的一些基本语法要点,使初学者对该语言有一个初步的了解原创 2023-11-27 11:42:33 · 461 阅读 · 0 评论