![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Go语言学习笔记
zhuxiatong
这个作者很懒,什么都没留下…
展开
-
Go Web(接收请求,处理请求,内容展示)
Go web工作流程客户端向服务器发送请求多路复用器接收到请求,并将其重定向到正确的处理器处理器对请求进行处理在需要访问数据的情况下,处理器会使用一个或多个数据结构,这些数据结构都是根据数据库中的数据建模而来的当处理器调用与数据结构有关的函数或者方法时,这些数据结构背后的模型会与数据库进行连接,并执行相应的操作。当请求处理完毕时,处理器会调用模板引擎,有时候还会向模板引擎传递一些通过面模型获取到的数据模板引擎会对模板文件进行语法分析并创建对应的模板,而这些模板又会与处理器传递的数据一起合并原创 2020-10-18 22:52:27 · 4603 阅读 · 0 评论 -
包结构和内置工具(Go语言)
包结构工作空间依照规范,工作空间(workspace)由src,bin,pkg三个目录组成。通常需要将空间路径添加到GOPATH环境变量列表中,以便相关工具能正常工作。在工作空间里,包括子包在内的所有源码文件都包村在src目录下。至于bin,pkg两个目录,其主要影响go install/get命令,它们会将编译结果(可执行文件或静态库)安装到这两个目录下,已实现增量编译。环境变量编译器等相关工具按GOPATH设置的路径搜索目标。也就是在导入目标库是,排在表前面的路径比当前工作空间优先级更高。go原创 2020-10-09 08:50:56 · 3768 阅读 · 0 评论 -
并发(通道,互斥锁,读写锁。Go语言学习笔记)
并发定义并发: 逻辑上具备同时处理多个任务的能力并行: 物理上在同一时刻执行多个并发任务通常会说程序是并发设计的,也就是说程序允许多个任务同时执行,但实际上并不一定会在同一时刻发生。在单核处理器上,程序能以间隔方式切换执行。并行则依赖多核处理器等物理设备,让多个任务真正在同一时刻执行,它代表了当前程序运行状态。并行是并发设计的理想执行模式。多线程或多进程是并行的基本条件,但单线程也可用协程(coroutine)做到并发。尽管协程在单个线程上通过主动切换来实现多任务并发。协程优点:将因阻原创 2020-10-08 17:02:31 · 4028 阅读 · 0 评论 -
方法和接口进阶(Go语言)
方法定义方法是与对象实例绑定的特殊函数。方法是面向对象编程的基础概念,用于维护和展示对象的自身状态。对象是内敛的,每个实例都有各自不同的独立特征,以属性和方法来暴露对外通行接口。普通函数则是专注于算法流程,通过接收参数来完成特定逻辑运算,并返回最终结果。方法是有关联状态的,函数是没有的。方法和函数语法区别在于前者有前置实例接收参数(receiver),编译器以便确定方法所属类型。在某些语言里,尽管没有显式定义,但会在调用时隐式传递this实例参数。可以为当前包,以及除接口和指针以外的任何类型定义原创 2020-09-25 17:34:27 · 3984 阅读 · 0 评论 -
数据结构进阶(Go语言)
字符串字符串是不可变字节(byte)序列,其本身是一个复合结构。type stringStruct struct{ str unsafe.Pointer len int}头部指针指向字节数组,但没有NULL结尾。默认以utf-8编码存储Unicode字符,字面量里允许使用十六进制,八进制和UFT编码格式。字符串默认值不是nil是“”。使用“ ‘ ” 定义不做转义处理的原始字符串,支持跨行(\n)。支持“!= ,==,< ,>,=,+=”操作符允许以索引访问字节数组原创 2020-09-23 16:12:51 · 4091 阅读 · 0 评论 -
函数进阶(Go语言)
函数定义函数是结构话编程的最小模板单元。它将复杂的算法过车分解为若干较小任务,隐藏相关细节,使得程序结构更加清晰,易于维护。函数设计成相对对立,通过接收输入参数完成一段算法指令,输出或存储相关结果。函数是代码复用和测试的基本单元。关键字func用于定义函数。Go中的函数有些不太方便的限制,但也借鉴了动态语言的某些优点。无须前置声明不支持命名嵌套不支持同名函数重载不支持默认参数支持不定长变参支持多返回值支持命名返回值支持匿名函数和闭包函数属于第一类对象,具备相同签名(参数及返回值列原创 2020-09-21 23:59:06 · 5680 阅读 · 0 评论 -
数组和切片(Go语言)
数组(array)定义Go语言提供了数组类型的数据结构。数组是具有相同类型的一组长度固定的数据序列,这种类型可以使任意的基本数据类型或复合数据类型及自定义类型。数组元素可以通过索引下标(位置)来读取或修改元素数据。索引从0开始,第一个元素索引为0,第二个索引为1,以此类推。数组的下标取值范围是从0开始,到长度减1。数组一旦定义后,大小不能更改。语法声明数组Go语言数组声明需要制定元素类型及元素个数,var 变量名 [数组长度]数据类型 // 一维数组定义数组长度必须是整数且大于0为初始原创 2020-09-11 00:00:32 · 4419 阅读 · 0 评论 -
指针和参数传递(Go语言)
指针概述指针是存储另一个变量的内存地址的变量变量是一种使用方便的占位符,变量都指向计算机的内存地址一个指针变量可以指向任何一个值的内存地址获取变量的地址 Go语言的取地址符&,一个变量前使用&,会返回该变量的内存地址。func main(){ a := 110 fmt.Printf("变量的地址:%x\n",&a)} 指针特点指针不能运算(不同于c语言)Go语言中如果对指针进行运算会报错声明指针*T是指针变量的类型,它指向T类原创 2020-09-09 21:23:05 · 5901 阅读 · 0 评论 -
函数入门(Go语言)
函数定义函数是组织好的,可重复使用的执行特定任务的代码块。可以提高应用程序的模块性和代码的重复利用率。Go语言支持普通函数,匿名函数和闭包。Go语言的函数属于first-class函数本身可以作为值进行传递支持匿名函数和闭包函数可以满足接口声明函数普通函数需要先声明才能调用,一个函数的声明包括参数和函数名等。编译器通过声明才能了解函数应该怎样在调用代码和函数体之间传递参数和返回参数。语法格式func 函数名 (参数列表) (返回参数列表){ //函数体}fun原创 2020-09-08 15:00:33 · 4452 阅读 · 0 评论 -
变量和常量(Go语言)
变量概念变量是计算机语言中存储数据的抽象概念。变量的功能是存储数据。变量通过变量名访问。变量的本质是计算机分配的一小块内存,专门用于存放指定数据,在程序运行过程中该数值可以发生改变。变量的存储往往具有瞬时性,或者说是临时存储,当程序运行结束,存放该数据的内存就会释放,而该变量就会消失。Go语言的变量名有字母,数字,下划线组成,首个字符不能为数字。Go语法规定,定义的局部变量若没有被调用则编译错误。命名:驼峰标识,不建议用下划线连接多个单词。声明变量变量声明有多种形式//未初始化的标准格式原创 2020-09-07 16:04:19 · 4662 阅读 · 0 评论