
Golang
文章平均质量分 65
Golang
凯歌技术控团队
所有能拿到结果的人都有两个特质:勇敢专业。
敢做,做精。
展开
-
Go语言之并发编程练习,GO协程初识,互斥锁,管道:channel的读写操作,生产者消费者
【代码】Go语言之并发编程练习,GO协程初识,互斥锁,管道:channel的读写操作,生产者消费者。原创 2023-07-19 20:08:40 · 1283 阅读 · 0 评论 -
Go语言之并发编程
有人把Go语言比作 21 世纪的C语言,第一是因为Go语言设计简单,第二则是因为 21 世纪最重要的就是并发程序设计,而 Go 从语言层面就支持并发。同时实现了自动垃圾回收机制。Go语言的并发机制运用起来非常简便,在启动并发的方式上直接添加了语言级的关键字就可以实现,和其他编程语言相比更加轻量。原创 2023-07-19 08:24:34 · 392 阅读 · 0 评论 -
Go语言之网络编程,使用编程语言实现多台计算机的通信。
(3)协议:定义通信规则,符合协议则可以通信,不符合不能通信。一般有TCP协议和UDP协议。(1)IP地址:网络中每一台计算机的唯一标识,通过IP地址找到指定的计算机。(2)端口:用于标识进程的逻辑地址,通过端口找到指定进程。原创 2023-07-19 08:18:23 · 395 阅读 · 0 评论 -
Go语言之包管理
Go语言是使用包来组织源代码的,包(package)是多个 Go 源码的集合,是一种高级的代码复用方案。Go 程序首先在 GOROOT/src 目录中寻找包目录,如果没有找到,则会去 GOPATH/src 目录中继续寻找。比如 fmt 包是位于 GOROOT/src 目录的 Go 语言标准库中的一部分,它将会从该目录中导入。Go语言的包借助了目录树的组织形式,一般包的名称就是其源文件所在目录的名称,虽然Go语言没有强制要求包名必须和其所在的目录名同名,但还是建议包名和所在目录同名,这样结构更清晰。原创 2023-07-19 08:15:59 · 552 阅读 · 0 评论 -
Go语言之接口(interface)
在java里,多态是同一个行为具有不同表现形式或形态的能力,即对象多种表现形式的体现,就是指程序中定义的引用变量所指向的具体类型和通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定。当使用多态方式调用方法时,首先检查父类中是否有该方法,如果没有,则编译错误;如果有,再去调用子类的同名方法。父类引用指向子类对象。原创 2023-07-19 07:43:10 · 565 阅读 · 0 评论 -
Go语言之结构体
在实际开发中,我们可以将一组类型不同的、但是用来描述同一件事物的变量放到结构体中。例如,在校学生有姓名、年龄、身高、成绩等属性,学了结构体后,我们就不需要再定义多个变量了,将它们都放到结构体中即可。在Go语言中,结构体承担着面向对象语言中类的作用。Go语言中,结构体本身仅用来定义属性。还可以通过接收器函数来定义方法,使用内嵌结构体来定义继承。这样使用结构体相关操作Go语言就可以实现OOP面向对象编程了。原创 2023-07-19 07:21:43 · 808 阅读 · 0 评论 -
Go语言之文件操作,读写文件,其他文件操作
基于此,美国人创建了utf8编码,而utf8编码是一种针对Unicode的可变长字符编码方式,根据具体不同的字符计算出需要的字节,对于ASCII码范围的字符,就用一个字节,而且符号与数字的对应也是一致的,所以说utf8是兼容ASCII码表的。于是,我中华民族自己重写一张对应表,直接生猛地将扩展的第八位对应拉丁文全部删掉,规定一个小于127的字符的意义与原来相同,即支持ASCII码表,但两个大于127的字符连在一起时,就表示一个汉字,这样就可以将几千个汉字对应一个个二进制数了。取这样一个元素的地址是非法的;原创 2023-07-19 07:01:49 · 867 阅读 · 0 评论 -
Go语言之函数补充defer语句,递归函数,章节练习
defer语句是go语言提供的一种用于注册延迟调用的机制,是go语言中一种很有用的特性。defer语句注册了一个函数调用,这个调用会延迟到defer语句所在的函数执行完毕后执行,所谓执行完毕是指该函数执行了return语句、函数体已执行完最后一条语句或函数所在协程发生了恐慌。编程经常会需要申请一些资源,比如数据库连接、打开文件句柄、申请锁、获取可用网络连接、申请内存空间等,这些资源都有一个共同点那就是在我们使用完之后都需要将其释放掉,否则会造成内存泄漏或死锁等其它问题。原创 2023-07-17 18:10:10 · 713 阅读 · 0 评论 -
Go语言之函数,返回值,作用域,传参,匿名函数,高阶函数,闭包函数
真正运行函数内的代码还需要对声明的函数进行调用,一个函数可以在任意位置多次调用。调用一次,即执行一次该函数内的代码。这样当然可以实现,但是是不是依然有大量重复代码,一会发现三个函数出了一个变量值不同以外其他都是相同的,所以为了能够在函数调用的时候动态传入一些值给函数,就有了参数的概念。这就涉及到了函数参数。函数每次调用可以传入不同的实际参数,传参的过程其实就是变量赋值的过程,将实际参数按位置分别赋值给形参。这样是不是就灵活很多了呢,所以基本上一个功能强大的函数都会有自己需要的参数,让整个业务实现更加灵活。原创 2023-07-17 17:00:25 · 759 阅读 · 0 评论 -
Go语言之重要数组类型map(映射)类型
消息摘要”(Message Digest)是一种能产生特殊输出格式的算法,这种加密算法的特点是无论用户输入什么长度的原始数据,经过计算后输出的密文都是固定长度的,这种算法的原理是根据一定的运算规则对原数据进行某种形式的提取,这种提取就是“摘要”,被“摘要”的数据内容与原数据有密切联系,只要原数据稍有改变,输出的“摘要”便完全不同,因此基于这种原理的算法便能对数据完整性提供较为健全的保障。原创 2023-07-16 11:45:25 · 944 阅读 · 0 评论 -
Go语言之重要数组类型切片(slice)make,append函数
切片是一个动态数组,因为数组的长度是固定的,所以操作起来很不方便,比如一个names数组,我想增加一个学生姓名都没有办法,十分不灵活。所以在开发中数组并不常用,切片类型才是大量使用的。原创 2023-07-16 11:10:03 · 1145 阅读 · 0 评论 -
Go语言之重要数组类型数组
我们之前学习过变量,当存储一个学生名字时可以name=“jack”,但是如果班级有三十人,每个人的名字都想存储到内存中怎么办呢?总不能用三十个变量分别存储吧,这时数组就可以发挥作用了。数组其实是和字符串一样的序列类型,不同于字符串在内存中连续存储字符,数组用[]的语法将同一类型的多个值存储在一块连续内存中。原创 2023-07-16 09:31:02 · 464 阅读 · 0 评论 -
Go语言之流指针类型,new函数
计算机中所有的数据都必须放在内存中,不同类型的数据占用的字节数不一样,例如 int 占用 4 个字节。为了正确地访问这些数据,必须为每个字节都编上号码,就像门牌号、身份证号一样,每个字节的编号是唯一的,根据编号可以准确地找到某个字节。地址从 0 开始依次增加,对于 32 位环境,程序能够使用的内存为 4GB,最小的地址为 0,最大的地址为 0XFFFFFFFF。数据在内存中的地址也称为指针,如果一个变量存储了一份数据的指针,我们就称它为指针变量。Go语言中使用对于指针存在两种操作: 取址和取值。原创 2023-07-15 22:55:57 · 638 阅读 · 0 评论 -
Go语言之流程控制语句,for循环
case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相等的。else那样遍历条件分支直到命中条件,而只需访问对应索引号的表项从而到达定位分支的目的。程序是由语句构成,而流程控制语句 是用来控制程序中每条语句执行顺序的语句。可以通过控制语句实现更丰富的逻辑以及更强大的功能。几乎所有编程语言都有流程控制语句,功能也都基本相似。3、到底使用哪一个选择语句,代码环境有关,如果是范围取值,则使用if else语句更为快捷;如果是确定取值,则使用switch是更优方案。原创 2023-07-12 14:33:18 · 311 阅读 · 0 评论 -
Go语言之常量和iota计数器
切片的创建切片的创建有多种方式,我们先看切片最通用的创建方法,那就是内置的 make 函数package mainimport "fmt"func main (){ var s1 []int =make([]int,5,8) var s2 []int =make([]int ,8) fmt.Println(s1) fmt.Println(s2)}ma...原创 2018-11-20 00:08:54 · 310 阅读 · 0 评论 -
Go语言之基本数据类型相关
数组变量的定义我们先试一下只申明类型,不赋初值。这时编译器会给数组默认赋上「零值」。数组的零值就是所有内部元素的零值。package mainimport "fmt"func main (){ var a [9] int fmt.Println(a)}下面我们看看另外三种变量定义的形式, 效果都是一样的func main (){ var a = [9]in...原创 2018-11-13 23:36:38 · 653 阅读 · 0 评论 -
Go语言之运算符和输入输出函数
Go 语言的分支循环语句选择性较少,循环语句它只有 for 循环,平时我们在其它语言用的 while 语句、do while 语句、loop 语句它是没有的。分支语句只有 if 和 switch,也没有三元操作符。If else 语句package mainimport "fmt"func main(){ fmt.Println(sign(max(min(24,42),max(2...原创 2018-11-06 00:03:23 · 246 阅读 · 0 评论 -
Go语言之数据类型转换
定义变量的3种方式package mainimport "fmt"func main() { var s int = 23 fmt.Println(s)}上面的变量定义可以简化,将类型去掉,因为编译器会自动推导变量类型,效果也是一样的,如下package mainimport "fmt"func main() { var s = 42 fmt.Pr...原创 2018-11-01 23:59:34 · 408 阅读 · 0 评论 -
Go语言之变量声明赋值相关
学习任何一门语言的第一步是看它的 Hello World 程序怎么写。下面是 Go 语言的 Hello Worldpackage mainimport "fmt"func main() { fmt.Println("hello world!")}运行//go run 指令只是用来开发调试用的#go run main.go//在生产环境中,需要将程序编译成没有任何依赖的...原创 2018-10-31 22:58:31 · 551 阅读 · 0 评论 -
GO编程语言之数组切片(slice),关于append函数扩容机制的浅浅感悟
【代码】GO编程语言之数组切片(slice),关于append函数扩容机制的浅浅感悟。原创 2018-08-23 14:06:43 · 384 阅读 · 0 评论