03 2022 档案

摘要:1、概述 1)值类型:int系列,float系列,bool,string,array数组和struct结构体 2)引用类型:指针,slice切片,map,chan管道,interface接口等 2、使用特点 1)、值类型:变量直接存储值,内存通常在栈中分配。 2)、引用类型:变量存储的是一个地址,这 阅读全文
posted @ 2022-03-31 18:15 李若盛开 阅读(246) 评论(0) 推荐(0) 编辑
摘要:前言:Go语言中new和make是内置函数,主要用来创建分配类型内存(相同点:堆上),其功能相似,却有本质区别。 引入:变量的声明 var i int var s string 变量的声明我们可以通过var关键字,然后就可以在程序中使用。当我们不指定变量的默认值时,这些变量的默认值是零值,比如int 阅读全文
posted @ 2022-03-31 14:53 李若盛开 阅读(359) 评论(0) 推荐(0) 编辑
摘要:相关面试题 map的底层实现原理 为什么遍历map是无序的? 如何实现有序遍历map? 为什么Go map是非线程安全的? 线程安全的map如何实现? Go sync.map 和原生 map 谁的性能好,为什么? 为什么 Go map 的负载因子是 6.5? map扩容策略是什么? 1、map默认是 阅读全文
posted @ 2022-03-31 14:25 李若盛开 阅读(1067) 评论(0) 推荐(0) 编辑
摘要:在其他语言中,比如Java一般来说,函数就是方法,方法就是函数; 但是在Go语言中,函数和方法不太一样,有明确的概念区分。函数是指不属于任何结构体类型的方法,即函数是没有接受者的;而方法是有接收者的。 1、函数 func add (a, b int ) int { return a+b } 2、方法 阅读全文
posted @ 2022-03-31 10:32 李若盛开 阅读(260) 评论(0) 推荐(0) 编辑
摘要:golang 时间与数字相乘,如果用硬编码的形式直接写是没有问题的: time.Second * 1000 如果用表达式来写就编译报错了: second := 10000 second * time.Second 结果报错:invalid operation: second * time.Secon 阅读全文
posted @ 2022-03-30 11:37 李若盛开 阅读(302) 评论(0) 推荐(0) 编辑
摘要:10位数的是以 秒 为单位;13位数的是以 毫秒 为单位;19位数的是以 纳秒 为单位; package main import ( "time" "fmt" ) func main() { fmt.Printf("时间戳(秒):%v;\n", time.Now().Unix()) fmt.Prin 阅读全文
posted @ 2022-03-30 10:26 李若盛开 阅读(814) 评论(0) 推荐(0) 编辑
摘要:nginx日志文件存储位置: /var/log/nginx/access.log 1.根据访问IP统计UV awk '{print $1}' access.log|sort | uniq -c |wc -l 2.统计访问URL统计PV awk '{print $7}' access.log|wc - 阅读全文
posted @ 2022-03-29 11:16 李若盛开 阅读(253) 评论(0) 推荐(0) 编辑
摘要:1、windows环境: go env -w GOPROXY=https://goproxy.cn,direct 2、mac环境: export GOPROXY=https://goproxy.cn,direct source ~/.bash_profile 阅读全文
posted @ 2022-03-29 10:30 李若盛开 阅读(1537) 评论(0) 推荐(0) 编辑
摘要:1、+拼接方式 这种方式是我在写golang经常用的方式,go语言用“+”拼接,php使用“.”拼接,不过由于golang中的字符串是不可变的类型,因此用 “+” 连接会产生一个新的字符串对效率有影响。 func main() { s1 := "hello" s2 := "word" s3 := s 阅读全文
posted @ 2022-03-28 18:44 李若盛开 阅读(1015) 评论(0) 推荐(0) 编辑
摘要:package main import ( "fmt" "reflect" ) func main() { var num float64 = 3.14 // 方法1: println(reflect.TypeOf(num).Name()) // 方法2: fmt.Println(reflect.T 阅读全文
posted @ 2022-03-28 12:11 李若盛开 阅读(677) 评论(0) 推荐(0) 编辑
摘要:执行顺序是按照导入包的顺序执行,而不是按照调用先后顺序执行。 1、init 的主要作用:初始化。 2、init 的主要特点: 1)init 函数先于 main 函数自动执行,不能被其他函数调用; 2)init 函数没有输入参数、返回值; 3)每个包可以有多个 init 函数(一般建议只写一个init 阅读全文
posted @ 2022-03-28 11:48 李若盛开 阅读(1406) 评论(2) 推荐(1) 编辑
摘要:1.常见框架 1.1 框架排名 Gin 31k [Lite] Beego 22k Iris 16k Echo 15k [Lite] Revel 11k Martini 10k [×] buffalo 5k [Lite] 1.2 框架特性 Gin: Gin 是一个用 Go (Golang) 编写的 w 阅读全文
posted @ 2022-03-27 22:57 李若盛开 阅读(3885) 评论(0) 推荐(0) 编辑
摘要:一、预备知识 1、非哈希表的特点:关键字在表中的位置和它之间不存在一个确定的关系,查找的过程为给定值一次和各个关键字进行比较,查找的效率取决于和给定值进行比较的次数。2、哈希表的特点:关键字在表中位置和它之间存在一种确定的关系。3、哈希函数:一般情况下,需要在关键字与它在表中的存储位置之间建立一个函 阅读全文
posted @ 2022-03-26 17:52 李若盛开 阅读(1631) 评论(0) 推荐(0) 编辑
摘要:1、切片的定义 切片就是一种简化版的动态数组,长度不固定,便于使用和管理数据集合。 切片是对数组一个连续片段的引用,所以切片是一个引用类型。 2、切片的内部结构 type SliceHeader struct { Data uintptr Len int Cap int } 内部实现的数据结构通过指 阅读全文
posted @ 2022-03-26 13:41 李若盛开 阅读(439) 评论(0) 推荐(0) 编辑
摘要:本文介绍了如何使用Docker以及Docker Compose部署Go Web 程序。 为什么需要Docker? 使用docker的主要目标是容器化。也就是为你的应用程序提供一致的环境,而不依赖于它运行的主机。 想象一下你是否也会遇到下面这个场景,你在本地开发了你的应用程序,它很可能有很多的依赖环境 阅读全文
posted @ 2022-03-25 19:28 李若盛开 阅读(700) 评论(0) 推荐(1) 编辑
摘要:部署Go语言项目 本文以部署 Go Web 程序为例,介绍了在 CentOS7 服务器上部署 Go 语言程序的若干方法。 独立部署 Go 语言支持跨平台交叉编译,也就是说我们可以在 Windows 或 Mac 平台下编写代码,并且将代码编译成能够在 Linux amd64 服务器上运行的程序。 对于 阅读全文
posted @ 2022-03-25 19:19 李若盛开 阅读(750) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示