随笔分类 - Go / go基础
摘要:一、协程的创建 Go 语言支持并发,只需要通过 go 关键字来开启 goroutine(协程) 即可。 goroutine(协程) 是轻量级线程,goroutine(协程) 的调度是由 Golang 运行时进行管理的。 goroutine 语法格式(创建协程): go 函数名( 参数列表 ) 示例代
阅读全文
摘要:1、通道 通道channel是Go提供的一种用于各个协程(goroutine)之间的数据共享,保证数据同步交换的机制。协程是轻量级线程,类似于Java中的线程。 2、通道的类型 2.1、无缓冲通道 用于同步通信,可保证在发送和接收数据时完成两个goroutine(协程)的数据交换。 2.2、缓冲通道
阅读全文
摘要:包管理工具,用来管理模块中包的依赖关系。下面来看看go mod的使用方法。 1.1、初始化模块 go mod init 项目模块名 1.2、依赖关系处理,根据go.mod文件 go mod tidy 1.3、将依赖复制到项目下的vendor目录 go mod vendor 如果包被屏蔽(墙),随后使
阅读全文
摘要:1、接口的声明 Go语言中的接口是一种新的类型定义,拥有将具有共性的方法定义在一起的特性。任何其他类型只要实现了这些方法就是实现了这个接口。 语法详情如下: /* 定义接口 */ type interface_name interface { method_name1 [return_type] m
阅读全文
摘要:Go语言没有Java语言面向对象的特性,也无类对象的概念。但可以使用结构体实现这些特性。 1、方法的声明 Go中的方法是一种特殊的函数,与struct相关联,被称为struct的接收者。可以理解为方法就是有接收者的函数。语法格式如下: type mystruct struct{} func (rec
阅读全文
摘要:1、函数 函数一般用于执行某一特定的任务,go函数有三个要素:函数名称、返回类型、参数。 2、函数特性 1、go中不允许函数重载(overload),不允许函数同名; 2、go中函数不能嵌套函数,但可以嵌套匿名函数; 3、函数可作为参数传递给另一个函数; 4、函数的返回值可以是一个函数; 5、函数调
阅读全文
摘要:1、函数 函数一般用于执行某一特定的任务,go函数有三个要素:函数名称、返回类型、参数。 2、函数特性 1、go中不允许函数重载(overload),不允许函数同名; 2、go中函数不能嵌套函数,但可以嵌套匿名函数; 3、函数可作为参数传递给另一个函数; 4、函数的返回值可以是一个函数; 5、函数调
阅读全文
摘要:1、类型定义与类型别名 1.1、类型定义 语法: type NewType Type NewType:表示自定义类型 Type:表示现有类型 1 package main 2 3 import "fmt" 4 5 // 类型定义 6 func definestruct() { 7 type Snai
阅读全文
摘要:1、指针 在Go中,指针的操作有两个符号:&(取地址) 和 * (变量指针的声明 | 取指针变量的值)。 一个指针变量指向了一个值的内存地址。 Go中函数传值皆为值拷贝,对于引用类型的传值,可以创建一个指针变量,无需拷贝数据。Go中,类型指针不能进行偏移和运算。 2、指针地址和指针类型 变量在运行是
阅读全文
摘要:map是一种key:value键值对的数据结构容器,通过key检索value,是引用类型。map内部实现是哈希表。 1、Map的声明 1.1、显示声明 1、语法 /* 声明变量,默认 map 是 nil */ var map_variable map[key_data_type]value_data
阅读全文
摘要:切片(Slice)是对数组的拓展,在Go中数组的长度一旦定义无法被修改,切片的长度是不固定的,可以理解为切片是一个可变长度数组,是一个有相同类型元素的可变长度序列。 1、声明切片 1.1、显示声明切片 1、语法 声明切片语法如下: var sclicename []type 2、示例代码 1 pac
阅读全文
摘要:数组是同类型的数据集合,数组长度一旦被定义就不能被修改,可通过下标访问数组元素。 1、声明数组 1.1、语法 var variable_name [SIZE] variable_type variable_name 数组名称 SIZE 数组长度,必须为常量 variable_type 数组保存元素的
阅读全文
摘要:1、for循环 与Java语言不同,go语言中只有for循环,没有while和do while。for表达式无需加括号,语法如下: for 初始语句;条件表达式;结束语句 { 循环体语句 } 示例代码如下: 1 package main 2 3 import "fmt" 4 5 /** 6 循环 7
阅读全文
摘要:Go语言中的if语句根据条件表达式的结果选择需要执行的业务流程。 1、if控制语句 1、if 语法 语法详情如下: if 条件表达式 { // 条件表达式为true,执行的代码块 } 条件表达式必须返回布尔型的结果,与Java语法不同,在Go中,if的条件表达式不使用括号。 2、if/else 语法
阅读全文
摘要:前言 Go官方编程指南:https://golang.google.cn/doc/tutorial/ 选择中文阅读go的官方文档。 查看官方提供的go的包的函数使用,即API(application program interface)应用程序接口,就是go的各个包的各个函数:https://gol
阅读全文
摘要:1、SDK环境准备 下载地址:https://golang.google.cn/dl/,下载操作系统位数对应的SDK。此处我下载的是64位的,1.17.12版本。 1.1、解压下载的amd64.zip安装包 此处我的解压目录 -> D:\development\GOSDK\go,目录结构如下 1.2
阅读全文