自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(17)
  • 资源 (1)
  • 收藏
  • 关注

原创 Golang通脉之并发初探

并发是编程里面一个非常重要的概念,Go语言在语言层面天生支持并发。并发与并行并发:同一时间段内执行多个任务。并行:同一时刻执行多个任务,有时间上的重叠。进程、线程、协程进程(Process),线程(Thread),协程(Coroutine,也叫轻量级线程)进程:是一个程序在一个数据集中的一次动态执行过程,可以简单理解为“正在执行的程序”,它是CPU资源分配和调度的独立单位。 进程一般由程序、数据集、进程控制块三部分组成。我们编写的程序用来描述进程要完成哪些功能以及如何完成;数据集则是程序在执行

2021-10-28 19:27:01 226

原创 Golan通脉之反射

什么是反射官方关于反射定义:Reflection in computing is the ability of a program to examine its own structure, particularly through types; it’s a form of metaprogramming. It’s also a great source of confusion.(在计算机领域,反射是一种让程序——主要是通过类型——理解其自身结构的一种能力。它是元编程的组成之一,同时它也是一大

2021-10-27 13:16:29 255

原创 Golang通脉之错误处理

在实际工程项目中,总是通过程序的错误信息快速定位问题,但是又不希望错误处理代码写的冗余而又啰嗦。Go语言没有提供像Java、C#语言中的try...catch异常处理方式,而是通过函数返回值逐层往上抛。这种设计,鼓励在代码中显式的检查错误,而非忽略错误,好处就是避免漏掉本应处理的错误。但是带来一个弊端,让代码冗余。什么是错误错误指的是可能出现问题的地方出现了问题。如打开一个文件时失败,这种情况是在意料之中的 。而异常指的是不应该出现问题的地方出现了问题。比如引用了空指针,这种情况在在意料之外的。可见,

2021-10-26 10:00:37 341

原创 Golang通脉之类型定义

自定义类型在Go语言中有一些基本的数据类型,如string、整型、浮点型、布尔等数据类型, Go语言中可以使用type关键字来定义自定义类型。type是Go语法里的重要而且常用的关键字,type绝不只是对应于C/C++中的typedef。搞清楚type的使用,就容易理解go语言中的核心概念struct、interface、函数等的使用。类型定义定义结构体使用type 可以定义结构体类型://1、定义结构体//结构体定义type person struct { name string /

2021-10-25 10:02:38 350

原创 Golang通脉之面向对象

面向对象的三大特征:封装:隐藏对象的属性和实现细节,仅对外提供公共访问方式继承:使得子类具有父类的属性和方法或者重新定义、追加属性和方法等多态:不同对象中同种行为的不同实现方式Go并不是一个纯面向对象的编程语言。在 Go 语言中可以使用结构体struct对属性进行封装,结构体就像是类的一种简化形式。可以在结构体上添加捆绑数据和方法的行为,这些数据和方法与类类似Go语言没有“类”的概念,也不支持“类”的继承等面向对象的概念。Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性。

2021-10-24 13:10:07 1510

原创 Golang通脉之接口

接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节。接口类型在Go语言中接口(interface)是一种类型,一种抽象的类型。interface是一组函数或方法的集合,是duck-type programming的一种体现。接口做的事情就像是定义一个协议(规则),不关心属性(数据),只关心行为(方法),请牢记接口(interface)是一种类型。接口与鸭子类型:维基百科的定义:If it looks like a duck, swims like

2021-10-23 09:40:33 140

原创 Golang通脉之方法

方法和接收者Go语言中的方法(Method)是一种作用于特定类型变量的函数。这种特定类型变量叫做接收者(Receiver)。接收者的概念就类似于其他语言中的this或者 self。Go 语言中同时有函数和方法。一个方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针。所有给定类型的方法属于该类型的方法集方法只是一个函数,它带有一个特殊的接收器类型,它是在func关键字和方法名之间编写的。接收器可以是struct类型或非struct类型。接收方可以在方法内部访问。方

2021-10-22 10:04:02 287

原创 Golang通脉之结构体

Go语言中的基础数据类型可以表示一些事物的基本属性,但是要表达一个事物的全部或部分属性时,这时候再用单一的基本数据类型明显就无法满足需求了,Go语言提供了一种自定义数据类型,可以封装多个基本数据类型,这种数据类型叫结构体,英文名称struct。 也就是可以通过struct来定义自己的类型了。Go语言中通过struct来实现面向对象。结构体的定义Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。使用ty

2021-10-21 10:19:03 366

原创 Golang通脉之指针

指针的概念指针是存储另一个变量的内存地址的变量。变量是一种使用方便的占位符,用于引用计算机内存地址。一个指针变量可以指向任何一个值的内存地址。在上面的图中,变量b的值为156,存储在内存地址0x1040a124。变量a持有b的地址,现在a被认为指向b。区别于C/C++中的指针,Go语言中的指针不能进行偏移和运算,是安全指针。要搞明白Go语言中的指针需要先知道3个概念:指针地址、指针类型和指针取值。Go语言中的指针不能进行偏移和运算,因此Go语言中的指针操作非常简单,只需要记住两个符号:&am

2021-10-20 10:01:39 148

原创 Golang通脉之包的管理

在工程化的开发项目中,Go语言的源码复用是建立在包(package)基础之上的。包(package)是多个Go源码的集合,是一种高级的代码复用方案,Go语言提供了很多内置包,如fmt、os、io等。包的定义src 目录是以代码包的形式组织并保存 Go 源码文件的。每个代码包都和 src 目录下的文件夹一一对应。每个子目录都是一个代码包。代码包包名和文件目录名,不要求一致。比如文件目录叫 server,但是代码包包名可以声明为 “main”,但是同一个目录下的源码文件第一行声明的所属包,必须一致!.

2021-10-19 10:40:26 97

原创 Golang通脉之函数

函数是组织好的、可重复使用的、用于执行指定任务的代码块。Go语言中支持函数、匿名函数和闭包,并且函数在Go语言中属于“一等公民”。函数定义Go语言中定义函数使用func关键字,具体格式如下:func 函数名(参数)(返回值){ 函数体}其中:函数声明:关键字func函数名:由字母、数字、下划线组成。但函数名的第一个字母不能是数字。在同一个包内,函数名称不能重名。函数参数:参数由参数变量和参数变量的类型组成,参数变量可以省略,可以有一个参数,也可以有多个,也可以没有;多个参数之.

2021-10-18 10:47:26 131

原创 Golang通脉之map

Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现。map 是一种无序的键值对的集合。map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值 map 是一种集合,所以可以像迭代数组和切片那样迭代它。不过,map 是无序的,无法决定它的返回顺序,这是因为 map 是使用 hash 表来实现的,Go语言中的map是引用类型,必须初始化才能使用。使用map过程中需要注意的几点:map是无序的,每次打印出来的map都会不一样,它不能通过index获取,而必.

2021-10-18 10:36:24 349

原创 Golang通脉之切片

因为数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性。func arraySum(x [3]int) int{ sum := 0 for _, v := range x{ sum = sum + v } return sum}这个求和函数只能接受[3]int类型,其他的都不支持。 再比如,a := [3]int{1, 2, 3}数组a中已经有三个元素了,因为数组的长度是固定的,后续要往数组a中添加新元素是不允许的。所以切.

2021-10-18 10:18:54 213

原创 Golang通脉之数组

数组是同一种数据类型元素的集合。数组在内存中都是连续存放的。 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化。 基本语法:// 定义一个长度为3元素类型为int的数组avar a [3]int数组定义:var 数组变量名 [数组长度]T比如:var a [5]int, 数组的长度必须是常量,[5]string 和 [4]string 不是同一种类型,也就是说长度也是数组类型的一部分。var a [3]intvar b [4]inta = b //不可以这样

2021-10-15 09:47:58 84

原创 Golang通脉之流程控制

流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”。Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码、降低重复代码而生的结构,属于扩展类的流程控制。if else(分支结构)if条件判断基本写法Go语言中if条件判断的格式如下:if 表达式1 { 分支1} else if 表达式2 { 分支2} else{ 分支3}当表达式1的结果为true时,执行分支1,否则判断表达式2,如果满足则执.

2021-10-14 10:24:25 144

原创 Golang通脉之数据类型

标识符与关键字在了解数据类型之前,先了解一下go的标识符和关键字标识符在编程语言中标识符就是定义的具有某种意义的词,比如变量名、常量名、函数名等等。 Go语言中标识符允许由字母数字和_(下划线)组成,并且只能以字母和_开头:abc, _, _123, a123。关键字关键字是指语言预先定义好的具有特殊含义的标识符。 关键字和保留字都不建议用作变量名。Go语言有25个关键字: break default func interface sele.

2021-10-13 11:30:05 166

原创 Golang通脉之基础入门

为什么要学Go1.性能优越感;Go 极其地快,其性能与 Java 或 C++相似。在使用中,Go 一般比 Python 要快 30 倍;2.序列化/去序列化、排序和聚合中表现优异;3.开发者效率较高;多种赋值、数据结构、指针、格式化以及内置的 HTTP 库等能使给开发者提供快速着手开发;4.天然并发,Go 的并发性方法非常容易上手;5.编译速度快;6.增强团队语言聚合力;Go 非常简单,且易于学习。它只提供了基本功能而没有多余。Go 引入的新概念是defer声明,以及内置的 goroutines

2021-10-12 18:39:11 151

Navicat Premium 12免安装.zip

mysql数据库图形化工具,免安装版,下载直接点击exe文件即可使用

2019-05-18

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除