01 2022 档案
摘要:一、goroutine基础介绍 goroutine是Golang中的协程,它是一种微线程,比起线程它耗费更少的资源。线程的作用就是可以进行并发或者并行,完全利用电脑多核的资源。 并发 多个任务跑在一个cpu上,在某一时刻只处理一个任务,任务之间来回切换的时间极短 并行 多个任务跑在多个cpu上,在某
阅读全文
摘要:一、问题引入 如果让你测试一个函数或者模块,你会怎么做呢?如下: package main import "fmt" // 被测试的函数 func calAdd(n1 int, n2 int) int { res := n1 + n2 return res } func main() { // 传统
阅读全文
摘要:一、flag包之命令行解析 1、os.Args os.Args是一个string切片,用来存储所有的命令行参数。 var Args []string 案例演示: package main import ( "fmt" "os" ) func main() { // 获取命令行参数 fmt.Print
阅读全文
摘要:一、文件基本介绍 文件就是保存数据用的,它可以保存一段文字、一张图片,也可以是声音或者视频等,它在程序中以流的形式来操作。 os包下的File结构体含了所有的文件相关操作: type File type File struct { // 内含隐藏或非导出字段 } File代表一个打开的文件对象。 f
阅读全文
摘要:一、需求分析 该程序实现对客户的增、删、查、改功能。其主要的界面实现: 主菜单界面 客户关系管理系统 1 添加客户 2 修改客户 3 删除客户 4 客户列表 5 退 出 请选择(1-5): 添加客户界面 ... 请选择(1-5): 1 添加客户 姓名:张三 性别:男 年龄:25 电话:1526935
阅读全文
摘要:一、基础 什么是类型断言呢? 举个例子,我们在之前的Usb接口案例中,假如Phone这个结构体除了实现接口的方法外,它还有自己定义的一个单独方法,但是Carema没有,那么当传入到Computer的use方法中就需要进行类型判断,如果是Phone结构体类型还需要执行额外的方法。 所以类型断言是由于接
阅读全文
摘要:Golang也拥有面向对象编程的封装、继承、多态特性。 一、封装 封装就是将抽象出的字段和对字段的操作封装在一起,数据被保护在内部,程序的其它包只有通过被授权的方法才能对字段进行操作。那么如何来实现封装呢? 将结构体、首字母小写(这样就是私有变量,只能在本包使用) 在结构体所在的包中提供一个工厂模式
阅读全文
摘要:一、结构体变量方法基础 结构体变量不仅仅时拥有自己的属性,而且还拥有自己的方法,比如一个人不仅仅拥有姓名、年龄,他还有一些行为,这些行为在结构体变量中就可以理解为方法。Golang中的方法是与具体的数据类型进行绑定的,因此也不仅仅时结构体(struct)拥有自己的方法。 (一)快速入门 1、方法的声
阅读全文
摘要:一、Golang中的面向对象特性 Golang中也支持面向对象编程(OOP),但是和传统的面向对象编程有区别,并不是纯粹的面向对象语言。 Golang中没有类(class),Go语言的结构体(struct)和其它编程语言的类(class)有同等地位,可以理解Golang是基于struct来实现OOP
阅读全文
摘要:一、map简介 map是key-value的数据结构,基本语法:var map 变量名 map[keytype]valuetype。 keytype可以是很多种数据类型,比如 bool、int、string、指针等,通常keytype为int和string。valuetype和keytype差不多,
阅读全文
摘要:一、切片简介 为什么需要切片呢?我们知道数组的大小一旦确定下来就不能改变了,那么如果存放一些个数不确定的值,数组就不能使用了,这时候就需要切片,切片可以当作动态数组来使用。 切片的使用和数组类似,查询切片的长度、遍历切片等操作 切片是引用类型,它是数组的一个引用,在进行传递时,遵循引用传递的机制 切
阅读全文