随笔分类 - GO基础
摘要:HTTP请求 本次内容 context 单元测试(给函数做单元测试) pprof调试工具(go语言内置工具) 可以看到代码的cpu和运行时的一些信息 能看到一些图表信息,如内存占用、cpu占用等 锁 sync.Mutex,底层是一个结构体,是值类型。给参数传递参数的时候,要传指针 两个方法 var
阅读全文
摘要:互联网协议 前言 现在我们几乎每天都在使用互联网,我们前面已经学习了如何编写Go语言程序,但是如何才能让我们的程序通过网络互相通信呢?本章我们就一起来学习下Go语言中的网络编程。 关于网络编程其实是一个很庞大的领域,本文只是简单的演示了如何使用net包进行TCP和UDP通信。如需了解更详细的网络编程
阅读全文
摘要:Go中的反射 反射 有时我们需要写一个函数,这个函数有能力统一处理各种值类型,而这些类型可能无法共享同一个接口,也可能布局未知,也有可能这个类型在我们设计函数时还不存在,这个时候我们就可以用到反射。 空接口可以存储任意类型的变量,那我们如何知道这个空接口保存数据的类型是什么? 值是什么呢? 可以使用
阅读全文
摘要:Golang goroutine channel 实现并发和并行 为什么要使用goroutine呢 需求:要统计1-10000000的数字中那些是素数,并打印这些素数? 素数:就是除了1和它本身不能被其他数整除的数 实现方法: 传统方法,通过一个for循环判断各个数是不是素数 使用并发或者并行的方式
阅读全文
摘要:Go中的文件和目录操作 文件的读取 通过os.Open方法读取文件 func main() { // 读取文件 方法1 file, err := os.Open("./main/test.txt") // 关闭文件流 defer file.Close(); if err != nil { fmt.P
阅读全文
摘要:Go中的接口 接口的介绍 现实生活中手机、相机、U盘都可以和电脑的USB接口建立连接。我们不需要关注usb卡槽大小是否一样,因为所有的USB接口都是按照统一的标准来设计的。 Golang中的接口是一种抽象数据类型,Golang中接口定义了对象的行为规范,只定义规范不实现。接口中定义的规范由具体的对象
阅读全文
摘要:Go中的结构体 关于结构体 Golang中没有“类”的概念,Golang中的结构体和其他语言中的类有点相似。和其他面向对象语言中的类相比,Golang中的结构体具有更高的扩展性和灵活性。 Golang中的基础数据类型可以装示一些事物的基本属性,但是当我们想表达一个事物的全部或部分属性时,这时候再用单
阅读全文
摘要:Go map map的介绍 map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。 Go语言中map的定义语法如下: map[KeyType]ValueType 其中: KeyType:表示键的类型 ValueType:表示键对应的值的类型 map类型
阅读全文
摘要:Go中的指针 要搞明白Go语言中的指针需要先知道三个概念 指针地址 指针类型 指针取值 Go语言中的指针操作非常简单,我们只需要记住两个符号:&:取地址,*:根据地址取值 关于指针 我们知道变量是用来存储数据的,变量的本质是给存储数据的内存地址起了一个好记的别名。比如我们定义了一个变量a:=10,这
阅读全文
摘要:Go的函数 函数定义 函数是组织好的、可重复使用的、用于执行指定任务的代码块 Go语言支持:函数、匿名函数和闭包 Go语言中定义函数使用func关键字,具体格式如下: func 函数名(参数)(返回值) { 函数体 } 其中: 函数名:由字母、数字、下划线组成。但函数名的第一个字母不能是数字。在同一
阅读全文
摘要:Go的切片 为什么要使用切片 切片(Slice)是一个拥有相同类型元素的可变长度的序列。它是基于数组类型做的一层封装。 它非常灵活,支持自动扩容。 切片是一个引用类型,它的内部结构包含地址、长度和容量。 声明切片类型的基本语法如下: var name [] T 其中: name:表示变量名 T:表示
阅读全文
摘要:Go的数组 Array数组介绍 数组是指一系列同一类型数据的集合。数组中包含的每个数据被称为数组元素(element),这种类型可以是意的原始类型,比如int、string等,也可以是用户自定义的类型。一个数组包含的元素个数被称为数组的长度。在Golang中数组是一个长度固定的数据类型,数组的长度是
阅读全文
摘要:Go的流程控制 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉" Go 语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码、降低重复代码而生的结构,属于扩展类的流程控制。 if else 推荐if后面不适用括号,当然也可以使用括
阅读全文
摘要:Golang的数据类型 概述 Go 语言中数据类型分为:基本数据类型和复合数据类型基本数据类型有: 整型、浮点型、布尔型、字符串 复合数据类型有: 数组、切片、结构体、函数、map、通道(channel)、接口等。 整型 整型的类型有很多中,包括 int8,int16,int32,int64。我们可
阅读全文
摘要:Go语言中的变量和常量 Go语言中变量的声明 Go语言变量是由字母、数字、下划线组成,其中首个字符不能为数字。Go语言中关键字和保留字都不能用作变量名 Go语言中变量需要声明后才能使用,同一作用域内不支持重复声明。并且Go语言的变量声明后必须使用。 变量声明后,没有初始化,打印出来的是空 如何定义变
阅读全文
摘要:Go语言发展简史 开发文档 https://studygolang.com/pkgdoc Go语言核心开发团队 Ken Thompson(肯·汤普森):1983年图灵奖(Turing Award)和1998年美国国家技术奖(National Medal of Technology)得主。他与Denn
阅读全文
摘要:Windows下Go语言的安装 前言 这阵子因为以后工作的原因,所以开始了go语言的学习之旅,工欲善其事必先利其器,首先就得把go语言环境搭建完成 下载Go 因为go语言的官网经常打不开,所以我就找了一个 镜像网站,里面有很多版本的Go语言,选择自己合适的,比如我的是Windows电脑,所以我选中里
阅读全文