![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Go语言基础知识
文章平均质量分 51
Go语言相关知识讲解
Cas狗
技能库:html,css,JQ,C#,Go,Linux,Git,docker,k8s,Zookeeper,kafka,网络协议
展开
-
Go语言反射机制
Go语言反射机制一、对值的反射package mainimport ( "fmt" "reflect")func reflectVal(i interface{}) { te := reflect.TypeOf(i) fmt.Println(te) //获得数据类型,注意:这里获得的变量的类型是reflect变量类型,需要和interface转换,需要使用类型断言 val := reflect.ValueOf(i) fmt.Println(val) //获取参数的值原创 2021-05-06 20:43:34 · 109 阅读 · 2 评论 -
Go语言常用内置包
Go语言常用模块一、终端获取信息flag包func main() { var host string var port int var help bool //定义需要解析的变量 flag.StringVar(&host, "H", "127.0.0.1", "连接地址") flag.IntVar(&port, "p", 22, "端口") flag.BoolVar(&help, "h", false, "帮助") flag.Usage = func() { f原创 2021-04-20 23:01:24 · 548 阅读 · 0 评论 -
Go语言包管理
Go语言包管理和单元测试一、包定义:就是对代码文件进行组织,放在不同的文件夹下,相同的文件夹下的文件可以定义为一个包,同一个包的文件包名相同易错:导入包不能成环二、GoPath方式1、bin存放可执行文件,go build之后创建exe文件2、pkgpkg存放编译后的库文件3、srcsrc存放项目项目源码的目录如果再次编译中,已经存在了相关库文件,直接引用,所以编译速度较快。导入形式:直接从绝对路径导入(从src开始引入)三、Go mod方式1、优势(1)不用设置gopath原创 2021-04-20 01:05:58 · 273 阅读 · 0 评论 -
Go知识点补充
Go语言基础知识汇总一、安装运行1、为什么要配置环境变量?因为要全局执行,在dos中运行代码得时候,优先查看当前目录有无执行得程序,如果没有就会往环境变量Path中去寻找。2、go build和go run的区别?go build是编译成源码文件,经过编译的可执行文件可以直接在其他机器上(没有go环境的机器)运行,但是.go文件只能在拥有SDK环境下才能正常运行。3、SDK软件开发工具包,需要配置相关的开发工具包环境。二、变量1、内存大小整型: 占八个字节;2、范围首字母大写为公原创 2021-04-19 16:02:56 · 65 阅读 · 0 评论 -
Channel管道
Channel管道1、 var 管道名字 chan 数据类型, eg:var intChan chan int 定义整形管道;2、管道channel是引用类型,需要初始化才能写入数据,需要Make分配内存,分配内存:intChan=make(chan int,3) 容量为3;package mainimport ( "fmt")//管道类似于队列func main(){ var intchan chan int //定义int类型的管道 intchan=make(cha原创 2021-02-25 17:14:06 · 649 阅读 · 0 评论 -
文件操作知识详解
文件操作知识详解一、流、1、定义:数据源(文件)到程序(内存)经历的路径;2、输入流与输出流:输入流是写文件(文件到内存的路径),输出流是读文件(内存到文件的路径);3、os.File封装所有的文件操作,File是结构体;二、打开文件和关闭文件func main(){ file,err:=os.Open("G:\\Goproject\\goFile.txt") defer file.Close() //关闭文件句柄 if err!=nil{ fmt.Println("文件句柄获取错原创 2021-02-25 16:19:39 · 93 阅读 · 0 评论 -
接口基础知识分享
接口基础知识分享一、接口的定义type 接口名 interface { 方法名1(参数列表)返回值列表 方法名2(参数列表)返回值列表}二、接口的形象例子现实生活中Usb接口就是一个形象的接口例子,例如手机、相机、U盘这些按照统一规格设计Usb在插头,插入Usb接口后有不同的反应package main import ( "fmt")type Usb interface{ start() //开始工作 stop() //结束工作}type Comput原创 2021-02-25 11:41:34 · 80 阅读 · 0 评论 -
面向对象之继承
面向对象之继承一、继承的好处1、解决代码复用,举例,学生类中相同的字段和方法可以让大学生,小学生,中学生一起继承。2、扩展性和维护性提高;二、继承的使用方法以Go为例,在Go语言中,继承采用的是嵌套结构体的方法type Student struct{ Name string Age string Score int}func (stu *Student) Show(){ fmt.Printf("%s岁的学生%s的成绩为%d\n",stu.Age,stu.Name,stu.Score)原创 2021-02-25 10:56:36 · 87 阅读 · 0 评论 -
面向对象编程之封装
面向对象编程之封装一、封装的原则(摘抄:https://blog.csdn.net/flyfeifei66/article/details/81532261)1、单一职责原则最重要的原则,见名知意。单一职责,强调的是职责的分离,一个方法只干一件事情,只因为一个原因做修改。很多代码之所以需要重构,因为有职责扩散。所谓职责扩散,就是因为某种原因,职责P被分化为粒度更细的职责P1和P2。从微观上讲,单一职责的方法一目了然,职责明确,利于维护。从宏观上讲是设计的要求,单一职责原则可以看作是低耦合、高内聚在原创 2021-02-25 09:56:53 · 209 阅读 · 0 评论 -
面向对象思维引导
面向对象编程以下的文章以Go来对面向对象进行知识分享,自己的理解,如果有误,欢迎指正一、面向对象自我理解举例说明:构建一个人的对象首先需要躯壳,这个时候定义结构体就是给人这个对象创建躯壳,躯壳包含了很多属性,如头,手,眼睛等等,就不一一创建了,假装是个残疾人type person struct{ head string eye string} //创建了一个有头有眼睛的人(对象)结构体是值类型,传导需要值传递创建好躯体后,每个人都会活动,比如我创建的残疾人有头,所以可原创 2021-02-24 11:42:04 · 55 阅读 · 0 评论 -
Go语言中数组、切片、Map知识点分享
数组、切片、Map知识点分享一、数组1、定义: var 数组名 [数组大小] 数组类型 eg:var arr [11]int (定于一个名字为arr的整型数组大小为11)2、赋值:以arr为例,arr[0]=1;3、数组的内存布局&arr可以获得arr的数组地址,数组中第一个元素的地址就是数组的地址,之后的数组地址根据数组的类型决定,比如假如是int32类型数组,第二个元素地址递增4个字节。顺便说一下类型所占字节数(参考https://blog.csdn.net/lucky404/ar原创 2021-02-23 15:17:15 · 656 阅读 · 1 评论 -
Go函数相关知识分享
Go函数相关知识分享一、init函数1、特点:会在main函数执行之前被Go的运行框架所运行package main import ( "fmt")//init在main前面运行,可以数据初始化func init(){ fmt.Println("init打印") //类似与构造函数}func main(){ fmt.Println("main打印")}上述代码输出结果为:2、作用:完成一些初始化赋值的工作3、注意事项:init函数在全局变量执行后执行当main原创 2021-02-19 22:37:42 · 91 阅读 · 2 评论 -
Go语言的值类型和引用类型
Go语言的值类型和引用类型一、值类型和引用类型区别说明1、值类型:int系列、float系列、bool、string、数组和结构体2、引用类型:指针、slice切片、map、管道chan、interface接口等二、使用特点1、值类型:直接储存值,栈分配,拷贝直接拷贝所有的值,损伤性能2、引用类型:储存地址,使用堆分配,拷贝时候只拷贝地址三、注意事项当没有变量引用这个地址的时候,该地址对应的数据空间就成为一个垃圾,用Gc来回收...原创 2021-02-19 21:31:18 · 337 阅读 · 0 评论 -
Go语言指针知识点分享
Go指针一、定义1、var 指针名 *指针类型 ,eg: var ptr *int ,定义一个名字为ptr的整型指针2、指针类型:指针变量存放的是一个地址,这个地址指向的空间才是值可以将地址赋值给指针,eg:var ptr *int =&num,然后使用*ptr获取num的值二、指针的注意事项&符号的意思是对变量取地址,如:变量a的地址是&a*符号的意思是对地址取值如:*&a,就是a变量所在地址的值,当然也就是a的值了简单解释:*和&是可以互相抵消原创 2021-02-19 21:20:21 · 172 阅读 · 0 评论