![](https://img-blog.csdnimg.cn/2019092715111047.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
golang
文章平均质量分 69
go语言学习
Herbert_JL
这个作者很懒,什么都没留下…
展开
-
【go进阶】方法
Golang 中的方法是作用在指定的数据类型上的(即:和指定的数据类型绑定),因此自定义类型, 都可以有方法,而不仅仅是 struct。在Go语言中,引入方法是为了实现类型相关的行为和操作。方法是与特定类型关联的函数,它们允许在类型上定义和调用特定的行为。使用方法的常见原因和优势:封装与信息隐藏:通过方法,可以将类型的内部实现细节隐藏起来,只暴露必要的公共接口。这提供了封装的能力,使得类型的使用者只需要关注公开的方法和属性,而不需要了解底层实现。类型相关的操作:方法允许在类型上定义特定的操作。原创 2023-05-16 00:23:22 · 61 阅读 · 0 评论 -
【go基础】结构体
结构体指针访问字段的标准方式应该是:(*结构体指针).字段名 ,比如 (*person).Name = “tom”,但 go 做了一个简化,也支持 结构体指针.字段名, 比如 person.Name = “tom”。更加符合程序员使用的习惯,go 编译器底层 对 person.Name 做了转化 (*person).Name。结构体是一种自定义的复合数据类型,可以包含不同类型的字段(成员变量),用于描述一个具体的实体或对象。总体而言,结构体提供了一种组织和操作数据的方式,更加灵活和可扩展。原创 2023-05-15 20:09:29 · 96 阅读 · 0 评论 -
【go进阶】map
在Go语言中引入map的主要原因是为了提供一种高效的键值对存储和检索机制。map可以将键与值关联起来,以便在给定键的情况下能够快速地查找到对应的值。数据存储和检索:map提供了一种方便的方式来存储和检索数据。通过使用键作为索引,可以快速访问和修改与之关联的值。动态扩容:map可以根据需要自动扩容,无需手动管理容量。这使得在处理未知数量的键值对时非常方便,不需要提前确定容量大小。高效的查找操作:map内部使用哈希表实现,这使得在map中进行键值对的查找操作具有常数时间复杂度,即O(1)。原创 2023-05-15 16:23:20 · 151 阅读 · 0 评论 -
【go】切片
开头指针,指向了切片开头的地址len,标明了使用到的空间长度cap,表示总空间长度切片操作主要包括增,见下文切片新增元素删,go没有实现这个操作,需要通过重复切片来实现查改,涉及切片的遍历,切片的遍历与数组的遍历一样,都可以使用for或for range遍历:T为变量类型,切片不需要说明长度,可以在声明时直接赋值,如果不赋值,则该切片len及capacity均为0,且只能通过append函数追加数据。原创 2023-05-15 12:48:15 · 324 阅读 · 0 评论 -
【go基础】数组
var 数组名 [数组大小]数据类型。原创 2023-05-14 16:32:50 · 135 阅读 · 0 评论 -
【go基础】函数
函数体 }函数定义解析:func:函数由 func 开始声明function_name:函数名称,参数列表和返回值类型构成了函数签名。parameter list:参数列表,参数就像一个占位符,当函数被调用时,你可以将值传递给参数,这个值被称为实际参数。参数列表指定的是参数类型、顺序、及参数个数。参数是可选的,也就是说函数也可以不包含参数。return_types:返回类型,函数返回一列值。return_types 是该列值的数据类型。原创 2023-05-13 22:31:18 · 330 阅读 · 0 评论 -
【go基础】程序流程控制
程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句。顺序控制分支控制循环控制。原创 2023-05-13 10:45:16 · 81 阅读 · 0 评论 -
【go基础】指针(待完善)
获取指针类型所指向的值,使用:*,比如:var ptrint, 使用ptr 获取 ptr 指向变量的值。原创 2023-05-12 17:33:23 · 51 阅读 · 0 评论 -
【go基础】数据类型转换
在将 String 类型转成 基本数据类型时,要确保 String 类型能够转成有效的数据,比如 我们可以把 “123” , 转成一个整数,但是不能把 “hello” 转成一个整数,如果这样做,Golang 直接将其转成 0 , 其它类型也是一样的道理. float => 0 bool => false。Golang 和 java / c 不同,Go 在不同类型的变量之间赋值时需要显式转换。Type: 就是数据类型,比如 int32,int64,float32 等等。strconv 包的函数。原创 2023-05-12 17:17:33 · 326 阅读 · 0 评论 -
【go基础】基本数据类型
1.数值型1.1整数类型:(u)int ,(u)int 8,(u)int 16,(u)int 32,(u)int 64,byte(uint 8),rune(int 32)1.2浮点类型 float32,float641.3 复数类型 complex2.字符型3.字符串类型4.布尔型原创 2023-05-12 15:11:07 · 281 阅读 · 0 评论 -
【go基础】常量、 常量实现枚举
Go语言中,常量可以使用关键字const来定义,常量的值不能被修改。identifier 是常量的名称,遵循标识符的命名规则;type 是可选的,表示常量的类型;value 是常量的值,必须是一个编译时可以确定的表达式。常量的值必须是编译时可以确定的表达式,因此不能使用任何需要在运行时计算的表达式来定义常量。原创 2023-05-12 14:43:29 · 181 阅读 · 0 评论 -
【channel】其他细节
说明:如果我们起了一个协程,但是这个协程出现了panic,如果我们没有捕获这个panic,就会造成整个程序崩溃,这时我们可以在goroutine中使用recover来捕获panic,进行处理,这样即使这个协程发生的问题,但是主线程仍然不受影响,可以继续执行。原创 2023-05-12 13:03:35 · 36 阅读 · 0 评论 -
【channel】应用实例2--多个读goroutine对执行效率的提升
使用多个goroutine和channel 统计1-80000的数字中,哪些是素数?[测试数据:80000]使用并发/并行的方式,将统计素数的任务分配给多个(4个)goroutine去完成,完成任务时间短。传统的方法,就是使用一个循环,循环的判断各个数是不是素数【ok】。原创 2023-05-11 22:17:33 · 60 阅读 · 0 评论 -
【channel】应用实例1
2)开启一个readData协程,从管道intChan中读取writeData写入的数据。4)主线程需要等待writeData和readDate协程都完成工作才能退出【管道】1)开启一个writeData协程,向管道intChan中写入50个整数.3)注意:writeData和readDate操作的是同一个管道。原创 2023-05-11 21:26:00 · 120 阅读 · 0 评论 -
Channel的定义、写入、读取、关闭与遍历
channle本质就是一个数据结构-队列数据是先进先出【FIFO:first in first out】线程安全,多goroutine 访问时,不需要加锁,就是说channel 本身就是线程安全的channel有类型的,一个string的channel只能存放 string类型数据。var 变量名 chan 变量类型。原创 2023-05-11 20:55:06 · 2953 阅读 · 1 评论 -
goroutine
goroutine及应用示例原创 2023-05-11 14:41:00 · 268 阅读 · 0 评论 -
2.1 go基础-变量
记录go语言学习过程原创 2023-05-07 23:38:04 · 94 阅读 · 0 评论