随笔分类 - GO
golang 不聲明額外變量循環指定次數
摘要:range + make + struct{} = ? for range make([]struct{}, 10) { // TODO } 差不多就是 Rust 當中的 for _ in 0..10 { // TODO } 或 (0..=10).for_each(|_| { // TODO });
阅读全文
vscode 打開多個項目報錯
摘要:VSCode 打開多個 Golang 項目 如果你的項目結構如下這樣的話 VSCode 在你的代碼上標紅。 但事實上你的代碼並沒有錯誤,並且可以正常的運行和調試,靜靜是在代碼上會有一個紅色的波浪線。如果你將鼠標懸浮在波浪線上則會提示你: gopls was not able to find modu
阅读全文
vsode 编写 go 出现 BrokenImport
摘要:vscode 无法识别 go 本地包 如果没有创建 go.mod 文件则通过 go mod init MOD_NAME 创建,并通过 go mod tidy 更新依赖 有 go.mod 文件,且对应的包已经通过 go get 下载到本地,则通过 go clean -cache 清理缓存 参考内容 [
阅读全文
Golang 中的 struct{}
摘要:空接口類型 基本類型大小 struct{} 大小 地址 被包含 獨立 作用 map chain struct{} 先看一個例子 type NilStruct struct{} type Man struct { None NilStruct Name string } func main() { n
阅读全文
Golang 泛型使用
摘要:Golang 泛型 泛型函数 定义 func Func1[T int | int32 | int64 | float32 | float64](a, b T) T { return a + b } 使用 Func1[int32](1, 2) 但是这样好像看起来很丑,所以可以使用自动类型推导,也就是让
阅读全文
golang基础快过
摘要:说明: 本文意在帮助有golang基础的同学快速复习,而不是讲解基础知识. 思维导图: 变量: 变量的声明有三种方式,只需要记住短声明只能用于函数当中,不能用于声明全局变量即可. 赋值的时候于python同样支持多重赋值(所以写一个交换两个数的算法实现应该不会让你用golang写/dog). 可赋值
阅读全文
golang进阶学习03_使用包的注意事项
摘要:注意事项 包的获取方式有两种: 通过go get [[patn]]获取位于网络上的包 将需要的包下载到本地,在使用的时候按照目录导入 包编译之后会生成.a文件,编译方式为go install [[package_path]](PS:这个包的路径是从GOPATH/src目录不包括src开始计算的) 导
阅读全文
golang进阶学习_init函数
摘要:init函数 init()函数在main函数被执行之前被执行,每一个包都有0-n个init函数,主要用于初始化包 init函数没有返回值和参数,并且无法被主动调用,只能在包被导入的时候由go自动调用 同一个包可以有多个init函数,其执行顺序与其定义顺序相同 即便被多次调用也只执行一次(如果一个包被
阅读全文
golang进阶学习01_包
摘要:包管理: main包: main函数所在的包,自定义包名不得与之相同 其他的包: GOPATH/src目录下每一个目录代表一个包 包名不一定与源文件同名 包中定义的一切全局类型或值都由首字母大小写控制其在包外可见性(同一个包下,都是公开的) 处于同一级目录的源文件处于同一个包 包可以嵌套--在一个目
阅读全文
关于golang方法的一些小点
摘要:本文在说什么 关于方法中的两个语法糖 一个设计规范 语法糖 在定义方法的时候,接收者可以是指针(*T),也可以是普通变量(T).而在调用的时候却可以不用在乎. type Info struct { name string age uint } func (i *Info)ChangeName(s s
阅读全文
简单的说说golang的struct
摘要:这篇文章会讲什么 结构体的一些容易被忽略的零散知识点(但是在使用过程中不那么重要) 使用结构体的一点小小建议 思维导图 正文 语法糖 无论是定义的普通结构体变量变量,还是结构体指针都是通过点号(.)访问成员变量. 比如 type Blogger struct { Name string Age in
阅读全文
leetcode,数组元素动态求和
摘要:
阅读全文
leetcode,求数组元素乘积符号
摘要:
阅读全文
100道GO笔试_答案&解析&扩展_选择题21-44
摘要:关于整型切片的初始化,下面正确的是: s := make([]int) s := make([]int, 0) s := make([]int, 5, 10) s := []int{1, 2, 3, 4, 5} [答案]: BCD [解析&更多]: 再在使用make初始化切片的时候,除了类型,长度也
阅读全文
100道GO笔试_答案&解析&扩展_选择题11-20
摘要:说明: 注释: 本文中出现的所有题目均来自于网络 本人只是对其进行解答和注释 所有题目均为个人解答方案,如有纰漏或更好的解答欢迎指正 如果有需要更详细解答的题目也可以留言 关于局部变量的初始化,下面正确的使用方式是: var i int = 10 var i = 10 i := 10 i = 10
阅读全文
100道GO笔试_答案&解析&扩展_选择题1-10
摘要:注释: 本文中出现的所有题目均来自于网络 本人只是对其进行解答和注释 所有题目均为个人解答方案,如有纰漏或更好的解答欢迎指正 选择题1-10: 下面属于关键字的是: func def struct class [答案]:AC [解析&扩展]: func用于定义函数,故A正确。 def是python中
阅读全文
zap日志库
摘要:简介: zap日志库是由uber开发的一个用于记录日志的库,相较于golang自带的日志库拥有更强大的功能。拥有结构化,快速,分级别记录日志等诸多优点。更多信息可以访问其官方库地址:GitHub 安装与导入: 在命令行使用命令 go get -u go.uber.org/zap 导入: import
阅读全文
Go Logger库基本使用
摘要:简介: Logger是golang中默认的日志库,可以用于日志记录,功能十分简单。 使用: 设置日志记录器 func SetupLogger() { // filePath为日志文件存放地址 logFileLocation, _ := os.OpenFile(filePath, os.O_CREAT
阅读全文
gin獲取form提交的表單數據
摘要:編寫一個簡單的提交form表單的login.html頁面: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <me
阅读全文
gin返回html
摘要:讓gin返回一個html頁面給瀏覽器: package main import ( "net/http" "github.com/gin-gonic/gin" ) func main() { // 使用默認路由配置 r := gin.Default() // 加載html文件,也就是需要返回的htm
阅读全文