进军golang
文章平均质量分 65
golang基础,gin开发web,beego入门
根子的数据库
自我感觉长得不错 哈哈哈
展开
-
golang高级进阶(二):goroutine性能、channel管道
一、goroutine性能对比1. 素数算法package mainimport "fmt"func main() { // 获取1-100之间的素数:除了1和它本身整除外不能被任何数整除,1不是素数 for i := 2; i <= 100; i++ { var flag bool = true // 假设是素数 for j := 2; j < i; j++ { // j从2开始,是因为1可以被0除外的所有数整除 if i%j == 0 { f原创 2022-05-10 17:08:46 · 1192 阅读 · 0 评论 -
golang高级进阶(一):进程、线程、并发、并行、goroutine协程
目录一、关于进程和线程1. 进程(Process)2. 线程二、关于并发和并行1. 并发2. 并行3. 通俗讲三、goroutine协程以及主线程1. 主线程2. 协程3. 多协程和多线程四、go关键词实操1. 顺序执行2. 加入go3. 加入时间4. 主线程执行快的情况5. sync.WaitGroup解决不等待6. 多协程并发并行执行五、设置golang运行时占用的cpu核数量(不是很重要)重点:这一篇全是干货,一定要多原创 2022-04-21 17:25:19 · 5508 阅读 · 3 评论 -
golang中级进阶(五):接口接收者、结构体多接口、接口嵌套、空接口类型断言使用细节
目录一、结构体值接收者和指针接收者实现接口的区别1. 值接收者2. 指针接收者二、结构体实现多接口三、接口嵌套四、空接口和类型断言使用细节一、结构体值接收者和指针接收者实现接口的区别1. 值接收者如果结构体中的方法是值接收者,那么实例化后的结构体值类型和结构体指针类型都可以赋值给接口变量package mainimport "fmt"// 结构体值接收者和指针接收者实现接口的区别type Usber interface { Start() Stop原创 2022-04-21 11:39:29 · 1747 阅读 · 0 评论 -
golang中级进阶(四):接口详解、空接口、类型断言
一、接口介绍Golang 中的接口是一种抽象数据类型,Golang 中接口定义了对象的行为规范,只定义规范 不实现。接口中定义的规范由具体的对象来实现。通俗的讲接口就一个标准,它是对一个对象的行为和规范进行约定,约定实现接口的对象必 须得按照接口的规范。二、基础接口操作方法1. 定义接口:所有接口后面最好跟上er// 定义接口 usbtype Usber interface { Start() Stop()}2. 使用接口定义的Phone结构体中必须要含有接口中的所有方原创 2022-04-20 10:30:58 · 1127 阅读 · 0 评论 -
golang中级进阶(三):go mod 和 golang包
目录一、包的定义二、包管理工具 go mod1. go mod init 初始化项目2. golang中自定义包3. 自定义包别名4. init魔术方法的执行顺序三、golang中使用第三方包1. 查找第三方包2. 安装第三方包3. 根据三方包文档使用一、包的定义包(package)是多个 Go 源码的集合,是一种高级的代码复用方案,Go 语言为我们提供了 很多内置包,如 fmt、strconv、strings、sort、errors、time、encod原创 2022-04-13 14:24:11 · 1410 阅读 · 0 评论 -
golang中级进阶(二):结构体
一、结构体详解1. 结构体定义Golang 中没有“类”的概念,Golang 中的结构体和其他语言中的类有点相似。和其他面向对 象语言中的类相比,Golang 中的结构体具有更高的扩展性和灵活性。Golang 中的基础数据类型可以表示一些事物的基本属性,但是当我们想表达一个事物的全 部或部分属性时,这时候再用单一的基本数据类型就无法满足需求了,Golang 提供了一种 自定义数据类型,可以封装多个基本数据类型,这种数据类型叫结构体,英文名称 struct。 也就是我们可以通过 struct 来定原创 2022-04-12 15:11:30 · 570 阅读 · 0 评论 -
golang中级进阶(一):time包、日期函数、指针详解
一、time包1. time包的基本使用package mainimport ( "fmt" "time")func main() { // 1.time包引用及基本使用 now := time.Now() fmt.Println(now) // 2022-04-08 15:07:36.11502 +0800 CST m=+0.000130549 // 获取可阅读的 Y := now.Year() m := now.Month() d := now.D原创 2022-04-11 14:46:48 · 1183 阅读 · 0 评论 -
golang初级进阶(四):函数(下)
一、defer运用1. defer定义defer 定义:Go 语言中的 defer 语句会将其后面跟随的语句进行延迟处理。在defer归属的函数即将返回时,将延迟处理的语句按 defer 定义的逆序进行执行,也就是说,先被 defer 的语句最后被执行,最后被 defer 的语句,最先被执行。2. 基础运用 // 1. defer 基础使用 fmt.Println("开始") fmt.Println(1) defer fmt.Println(2) defer fmt.Pr原创 2022-04-07 15:27:56 · 378 阅读 · 0 评论 -
golang初级进阶(三):函数(上)
一、函数定义函数是组织好的、可重复使用的、用于执行指定任务的代码块。1. 初级定义函数:5种方式// 定义函数 第一种方式:每个参数都有规定类型,返回值类型。func sum1(x int, y int) int { sum := x + y return sum}// 第二种方式:参数的类型一致func sum2(x, y int) int { sum := x + y return sum}// 第三种方式:不规定参数数量,此时接收到的参数是一个切片func su原创 2022-04-06 17:50:06 · 390 阅读 · 0 评论 -
golang初级进阶(二):map详解
1. 定义mapmap 是一种无序的基于 key-value 的数据结构,Go 语言中的 map 是引用类型,必须初始化 才能使用。定义map的两种方式: // 定义map 第一种通过make函数定义 mapArr := make(map[string]string) mapArr["username"] = "张三" fmt.Println(mapArr) // map[username:张三] // 第二种定义方式 mapArr2 := map[string]string原创 2022-04-01 16:44:34 · 1172 阅读 · 0 评论 -
golang初级进阶(一):顺序排序、冒泡算法、sort排序
目录一、排序算法1. 顺序排序2. 冒泡排序二、sort排序1. sort升序2. sort降序一、排序算法1. 顺序排序package mainimport "fmt"func main() { slice1 := []int{3, 11, 32, 1, 4} //顺序排序:由大到小 => 从第一个一直比到最后一个 for i := 0; i < len(slice1); i++ { for j := i + 1; j <原创 2022-04-01 14:21:25 · 371 阅读 · 1 评论 -
golang基础(五):数组、多维数组、切片
目录一、数组1. 定义数组:四种方式2. 遍历数组3. 练习题二、多维数组1. 两种定义方式2. 遍历多维数组3. 数组与切片的不同三、切片1. 定义切片:4种方式2. 遍历切片3. 切片的长度容量解释4. 使用make()函数创建切片5. 直接相等的切片与copy()切片的区别6. 切片追加、合并、删除元素一、数组1. 定义数组:四种方式package mainimport "fmt"func main() { .原创 2022-03-31 14:20:17 · 1322 阅读 · 0 评论 -
golang基础(四):条件判断、循环体、跳出循环
一、条件判断1. ifif 格式有两种写法:package mainimport "fmt"func main() { a := 1 if a < 10 { fmt.Println("第一种写法,此时a是函数体内的变量") } if b := 1; b < 10 { fmt.Println("第二种写法,此时b是if中的变量") }}2. if, else if, elsepackageimport "fmt"func main原创 2022-03-29 12:00:51 · 2043 阅读 · 0 评论 -
golang基础(三):类型转换、各种运算符
一、各种类型相互转换1. 整形间相互转换一般都是由小转大,不建议由大转小,会有数值的误差package mainimport "fmt"func main() { var a int8 = 20 var b int16 = 40 var c = int16(a) + b // int8 转成 int16 fmt.Println(c) // 60}2. 整型转浮点型package mainimport "fmt"func main() {原创 2022-03-28 15:49:57 · 685 阅读 · 0 评论 -
golang基础(二):常量、类型、字符串常用操作
一、定义常量const 定义常量,不可更改。可以一次性定义多个常量,但必须都要赋值。package mainimport "fmt"func main() { const username = "张三" fmt.Println(username) // 定义多个常量 const ( username = "张三" age = 12 sex = "男" ) fmt.Print原创 2022-03-26 16:03:06 · 1269 阅读 · 0 评论 -
golang 基础(一):安装、IDE、fmt、变量
一、下载安装Go 官网下载地址:https://golang.org/dl/ Go 官方镜像站(推荐):https://golang.google.cn/dl/自行根据自己的系统进行下载1. windows安装双击 一直下一步下一步即可安装完毕后打开cmd测试是否成功go version出现以下信息,说明安装成功2. mac 安装双击打开,把go直接拖进 Application即可安装完毕后打开 iterm终端查看是否安装成功go ..原创 2022-03-25 10:09:29 · 1371 阅读 · 0 评论