golang
文章平均质量分 76
Casey321
这个作者很懒,什么都没留下…
展开
-
golang学习之路—json
JSONJSON基本介绍JSON数据格式说明JSON数据在线解析JSON的序列化JSON的反序列化JSON基本介绍JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易与人阅读和编写。同时也易于机器解析和生成。JSON是在2001年开始推广使用的数据格式,目前已经成为主流的数据格式。JSON易于机器解析和生成,并有效地提升网络输出效率,通常程序在网络传输时会先将数据(结构体、map等)序列化成json字符串,到接收方得到json字符串时,再反序列化恢复成原来的原创 2021-03-03 22:10:52 · 355 阅读 · 3 评论 -
golang面向对象编程—接口
接口基本介绍接口快速入门基本语法接口使用注意事项基本介绍在Go语言中接口(interface)是一种类型,一种抽象的类型。interface是一组method的集合,是duck-type programming的一种体现。接口做的事情就像是定义一个协议(规则),只要一台机器有洗衣服和甩干的功能,我就称它为洗衣机。不关心属性(数据),只关心行为(方法)。在Golang中,多态特性主要是通过接口来体现的。接口快速入门用程序来模拟一下上图中的应用场景。package mainimport(原创 2021-03-01 10:23:03 · 555 阅读 · 2 评论 -
Golang如何体现面向对象三大特征之多态?
多态基本介绍快速入门接口体现多态的两种形式多态参数多态数组基本介绍变量(实例)具有多种形态。面向对象的三大特征,在Go语言,多态特征是通过接口实现的。可以按照统一的接口来调用不同的实现。这时接口变量就呈现不同的形态。快速入门在前面的Usb接口案例,Usb usb,既可以接收相机变量,又可以接收手机变量,就体现了Usb接口多态特性。代码如下:package mainimport( "fmt")//定义一个接口type Usb interface{ //声明了两个没有实现的方法 S原创 2021-02-28 14:38:49 · 951 阅读 · 8 评论 -
Golang如何体现面向对象三大特性之继承?
继承引出继承的必要性继承的基本介绍基本介绍示意图快速入门案例继承的好处继承的注意事项多重继承引出继承的必要性看一个问题,学生考试系统的程序,提出代码复用的问题。看下例代码:package mainimport( "fmt")//小学生type Pupil struct{ name string age int score int}//显示他的成绩func (p *Pupil) ShowInfo(){ fmt.Printf("姓名:%v,年龄: %d,成绩:%d\n",p.原创 2021-02-28 10:12:19 · 455 阅读 · 2 评论 -
Golang如何体现面向对象三大特征之封装?
封装基本介绍封装介绍封装的好处golang如何体现封装封装的实现基本介绍Golang仍然有面向对象编程的继承、封装和多态的特性,只是实现的方法和其它OOP语言不一样,下面我们来看看Golang是如何实现封装的。封装介绍封装(encapsulation)就是把抽象出的字段和对字段的操作封装在一起,数据被保护在内部,程序的其它包只有通过被授权的操作(方法)才能对字段进行操作。封装的好处隐藏实现细节。可以对数据进行验证等。golang如何体现封装对结构体中的属性进行封装通过方法,包实现封原创 2021-02-27 16:11:28 · 1398 阅读 · 4 评论 -
Golang面向对象编程—工厂模式创建实例
工厂模式说明引入工厂模式跨包创建实例说明Golang的结构体没有构造函数,通常可以使用工厂模式来解决这个问题。引入看一个需求:package maintype Student struce{ Name string ...}因为这里的Student的首字母S是大写的,如果我们想在其它包创建Student的实例,我们只要引入包,直接创建Student结构体的变量(实例)。但是问题来了,如果首字母是小写,该怎么办?->工厂模式来解决。工厂模式跨包创建实例student.go原创 2021-02-27 15:35:43 · 2191 阅读 · 7 评论 -
Golang面向对象编程—方法
方法基本介绍方法的声明方法快速入门案例方法的调用和传参机制原理方法和函数的区别方法使用的注意事项基本介绍在某些情况下,我们需要声明(定义)方法。比如Person结构体:除了有一些字段外,Person结构体还有一些行为比如:可以说话,跑步,通过学习,还可以做算术题。这是就要用方法才能完成。Golang中的方法是作用在指定的数据类型上的(即:和指定的数据类型绑定),因此自定义类型都可以有方法,而不仅仅是struct。方法的声明func (recevicer type)methodName(参数列表)(原创 2021-02-27 15:13:05 · 1184 阅读 · 2 评论 -
Golang面向对象编程—结构体
Golang面向对象编程Golang面向对象编程说明结构体与结构体变量(实例)1、关系示意图2、二者之间的区别和联系结构体变量在内存的布局如何声明结构体字段/属性1、基本介绍2、注意事项结构体初始化结构体使用注意事项Golang面向对象编程说明Golang也支持面向对象编程(OOP),但是和传统的面向对象编程有区别,并不是纯粹的面向对象语言。所以我们说Golang支持面向对象编程特性是比较准确的。Golang没有类(class),Golang的结构体(struct)和其它编程语言的类有同等的地址,可原创 2021-02-27 13:20:26 · 1273 阅读 · 1 评论 -
Golang学习之路—map切片
map切片基本介绍案例演示基本介绍切片的数据类型如果是map,则我们称为slice of map,map切片,这样使用则map个数就可以动态变化了。案例演示要求:使用一个map来记录学生的信息name和age,即一个学生对应一个map,并且学生的个数可以动态的增加。package mainimport( "fmt")func main(){ var stu []map[string]string stu = make([]map[string]string, 1) //增原创 2021-02-26 21:32:04 · 1052 阅读 · 2 评论 -
Golang学习之路—map
mapmap的基本介绍map的声明1、基本语法2、map声明举例3、案例演示map的使用map的增删改查操作1、map增加和更新2、map的 删除3、map查找map遍历map使用细节map的基本介绍map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。map的声明1、基本语法var 变量名 map[keytype]valuetype说明:golang中的map的key可以是很多种类型,比如bool,string,指针,channel,整数,原创 2021-02-26 21:18:30 · 4517 阅读 · 5 评论 -
Golang学习之路— 一文带你了解切片(slice)
切片切片的基本介绍切片的快速入门切片在内存中形式nil切片和空切片nil切片空切片切片的使用方式1方式2方式3方式1与方式2的区别(面试)切片的遍历append内置函数对切片进行动态追加案例演示底层分析切片的拷贝操作切片使用的注意事项切片的基本介绍切片本身并不是动态数组或者数组指针。它内部实现的数据结构通过指针引用底层数组,设定相关属性将数据读写操作限定在指定的区域内。切片本身是一个只读对象,其工作机制类似数组指针的一种封装。切片(slice)是对数组一个连续片段的引用,所以切片是一个引用类型(因此更原创 2021-02-23 19:57:17 · 778 阅读 · 3 评论 -
Golang学习之路—数组
数组与切片数组1、数组基本介绍2、数组的快速入门3、数组定义和内存布局4、数组的初始化4、数组的使用5、数组的遍历1、常规遍历2、for-range结构遍历6、数组使用的注意事项数组1、数组基本介绍数组可以存放多个同一类型数据。数组也是一种数据类型,在Go中,数组是值类型。2、数组的快速入门package mainimport( "fmt")func main(){ //统计学生成绩的总分数 var scores[5] int scores[0] = 90 scores[1]原创 2021-02-23 16:14:02 · 248 阅读 · 2 评论 -
Golang学习之路—字符串常用的系统函数
字符串常用的系统函数Go语言标准库文档1、统计字符串的长度(按字节)len(str)2、字符串遍历,处理中文3、字符串转整数4、整数转字符串5、字符串转[]byte6、[]byte转字符串7、10进制转2、8、16进制8、查找子串是否在指定字符串中9、统计一个字符串有几个指定子串10、不区分大小的字符串比较11、返回子串在字符串中第一次出现的位置12、返回子串在字符串中最后一次出现的位置13、将指定子串替换成另一个子串14、按照指定字符分割字符串15、将字符串的字母进行大小写转换17、去掉字符串左右两边的指原创 2021-02-23 11:01:26 · 217 阅读 · 2 评论 -
Golang学习之路—错误处理
错误处理错误处理案例错误处理基本说明使用defer+recover来处理错误错误处理的好处自定义错误自定义错误的介绍案例说明错误处理案例看下面代码:package mainimport( "fmt")func test(){ num1 := 10 num2 := 0 res := num1 / num2 fmt.Println("res =",res)}func main(){ test() fmt.Println("main()下面的代码")}运行结果:说明:原创 2021-02-23 09:58:20 · 2064 阅读 · 5 评论 -
Golang学习之路— init函数、匿名函数、闭包
init函数、匿名函数、闭包init函数1、 基本介绍2、案例说明3、 init函数的注意事项匿名函数1、基本介绍2、匿名函数使用方式方式1方式23、全局匿名函数闭包1、闭包的介绍2、案例演示3、闭包的实践init函数1、 基本介绍每一个源文件都可以包含一个init函数,该函数会在main函数执行前,被Go运行框架调用,也就是说init会在main函数之前被调用。2、案例说明package mainimport "fmt" //init函数,通常可以在init函数中完成初始化工作func原创 2021-02-22 18:47:20 · 339 阅读 · 3 评论 -
Golang学习之路—函数
函数函数的基本概念函数的基本语法案例演示函数的调用机制案例演示:return 语句基本语法和说明函数的递归调用基本介绍快速入门案例分析图说明递归调用总结函数使用的注意事项函数的defer为什么需要defer案例defer的注意事项defer应用场景函数参数传递方式两种传递方式值类型和应用类型函数的基本概念为完成某一功能的程序指令(语句)的集合,称为函数。在Go中,函数分为:自定义函数、系统函数。函数的基本语法func 函数名(形参列表)(返回值列表){ 执行语句... return 返原创 2021-02-22 15:51:37 · 202 阅读 · 2 评论 -
Golang学习之路—包的使用详解
包的使用详解包的引出包的原理图包的基本概念包的三大作用包的相关说明包使用的快速入门包使用的注意事项包的引出在实际开发中,我们往往需要在不同文件中,去调用其它文件的定义函数,比如main.go中,去使用utils.go文件中的函数。包的原理图包的基本概念包的三大作用包的相关说明包使用的快速入门包使用的注意事项...原创 2021-02-22 10:24:32 · 1023 阅读 · 3 评论 -
Golang学习之路—值类型和引用类型
值类型和引用类型值类型和引用类型说明值类型和引用类型特点值类型引用类型栈区和堆区示意图值类型和引用类型说明值类型:基本数据类型int系列,float系列,bool,string,数组和结构体struct。引用类型:指针、slice切片、map、管道chan、interface等都是引用类型。其默认值为nil,而非c中的NULL。值类型和引用类型特点值类型变量直接存储值,内存通常在栈中分配。示意图:引用类型变量存储的是一个地址,这个地址对应的空间才真正存储数据(值),内存通常在堆上分配,当原创 2021-02-21 18:28:13 · 2897 阅读 · 3 评论 -
Golang学习之路—指针
指针详解基本介绍指针地址指针类型指针取值指针使用细节基本介绍区别于C/C++中的指针,Go语言中的指针不能进行偏移和运算,是安全指针。Go语言中的函数传参都是值拷贝,当我们想要修改某个变量的时候,我们可以创建一个指向该变量地址的指针变量。传递数据使用指针,而无须拷贝数据。类型指针不能进行偏移和运算。Go语言中的指针操作非常简单,只需要记住两个符号:&(取地址)和*(根据地址取值)。指针地址每个变量在运行时都拥有一个地址,这个地址代表变量在内存中的位置。Go语言中使用&字符放在变量前原创 2021-02-21 17:38:15 · 2587 阅读 · 5 评论 -
Golang学习之路—基本数据类型
Golang数据类型数据类型介绍整数类型基本介绍整数的类型整型的使用细节小数类型/浮点型基本介绍小数类型浮点型使用细节字符类型基本介绍案例字符类型使用细节布尔类型基本介绍案例string类型基本介绍案例string使用注意事项基本数据类型默认值基本数据类型的相互转换基本数据类型和string的转换基本类型转string类型string类型转基本数据类型数据类型介绍每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间。数据类型分为两种,一种是基本数据类型,另一种是派生数据类型,见下图。原创 2021-02-19 20:14:41 · 828 阅读 · 2 评论 -
Golang学习之路—Golang变量
Golang变量为什么需要变量变量的介绍变量的概念变量的使用步骤变量快速入门案例变量使用注意事项Golang变量使用的三种方式多变量声明变量的声明、初始化、赋值声明变量初始化变量给变量赋值为什么需要变量一个程序就是一个世界,变量时程序的基本组成单位。不论是使用哪种高级程序语言编写程序,变量都是其程序的基本组成单位,比如,一个示意图:上图的sum、sub都是变量。变量的介绍变量的概念变量相当于内存中一个数据存储空间的表示,可以把变量看做是一个房间的门牌号,通过门牌号可以找到房间,同样的道理,通原创 2021-02-19 10:42:46 · 250 阅读 · 1 评论 -
Golang学习之路—Golang快速开发入门
Golang快速开发入门1、需求2、开发步骤go的目录结构代码编译运行go run命令3、Golang执行流程分析4、开发注意事项1、需求要求开发一个hello.go程序,可以输出“Hello World”。2、开发步骤go的目录结构代码说明:go文件的后缀是.go。package main 表示hello.go所在的包是main,在go中,每个文件都必须归属于一个包。import “fmt”:表示引入一个包,报名fmt,引入该包后,就可以使用fmt包中的函数。func main{原创 2021-02-18 22:12:17 · 614 阅读 · 3 评论 -
Golang学习之路—go语言开发环境搭建
文章目录Windows下搭建Go开发环境SDK简单介绍SDK工具包下载windows下安装SDK测试SDK是否安装成功golang环境变量配置为什么要配置环境变量环境变量配置步骤Windows下搭建Go开发环境SDK简单介绍源代码是不能够运行的,go程序要编译后才能运行,要运行go程序首先要搭建go开发环境,简单讲就是安装和配置SDK。SDK的全称是:Software Developmet Kit,即软件开发工具包。SDK是提供给开发人员使用的,其中包含了对应开发语言的工具包。SDK工具包下载S原创 2021-02-08 21:09:29 · 507 阅读 · 3 评论 -
golang学习之路—VSCode下载安装
文章目录VSCode安装步骤下载网址官网下载太慢如何解决VSCode安装步骤下载网址VSCode下载网址官网下载太慢如何解决首先,打开浏览器的下载内容,可以看到下面内容。复制下载网址,如下图所示。用vscode.cdn.azure.cn替换下面框住的内容最后的下载网址是:https://vscode.cdn.azure.cn/stable/8490d3dde47c57ba65ec40dd192d014fd2113496/VSCodeUserSetup-x64-1.53.0.exe原创 2021-02-08 12:28:17 · 480 阅读 · 3 评论