随笔分类 -  Go

摘要:go net包的基本使用之记录一些函数(包含一个简单的UDP客户端和服务端示例) 1、net.ResolveIPAddr 根据域名返回IP 2、net.ParseIP 监测IP是否有效 有效返回IP, 无效返回nil 3、net.Interfaces 获取系统的网卡信息 3.1、inter.Flag 阅读全文
posted @ 2022-09-16 14:50 南风丶轻语 阅读(400) 评论(0) 推荐(0) 编辑
摘要:Go语言sync.Map的简单使用(map是线程不安全的) 1、map是线程不安全的 Go语言中的 map 在并发情况下,只读是线程安全的,同时读写是线程不安全的。 可以这么复现,会报错: fatal error: concurrent map read and map write package 阅读全文
posted @ 2022-09-14 14:19 南风丶轻语 阅读(75) 评论(0) 推荐(0) 编辑
摘要:go-daemon的简单使用 没什么特殊的,就是记录一下笔记,和官网以及百度上的几乎一模一样 1、介绍 这是一个在 Go 中编写系统守护进程的库。 2、特性 Go 协程安全的守护进程; 内置使用 pid 文件; 轻松处理系统信号; 守护进程的控制。 3、基本使用 导入"github.com/sevl 阅读全文
posted @ 2022-09-09 17:13 南风丶轻语 阅读(1436) 评论(0) 推荐(0) 编辑
摘要:go template模板的语法 当前对象 {{ . }} 表示当前对象,当前对象针对于作用域而言 例子1:当前传入字符串对象,{{ . }}直接表示字符串 这里的{{ . }}就是传入的hello world 例子2:当前传入结构体对象,{{ . }} 表示结构体 {{ .Name }}和{{ . 阅读全文
posted @ 2022-08-18 17:29 南风丶轻语 阅读(2851) 评论(0) 推荐(0) 编辑
摘要:Go语言依赖管理 0、说明: 导入第三方的库,一般有下面几种方式进行管理第三方库,现在一般推荐使用go mod的方式进行管理。其他两个了解一下就行了。 1、管理方式GOPATH GOPATH是一个环境,Linux默认在~/go目录下,Windows默认在%USERPOFILE%\go目录下,当然也可 阅读全文
posted @ 2022-06-18 20:05 南风丶轻语 阅读(127) 评论(0) 推荐(0) 编辑
摘要:一些注意事项: 1.每个目录只有能一个包,可以有多个文件,但是所有文件都必须是同一个包(编辑器会提示的,不用特意关注) 2.包内的大写函数、大写结构体是包外可见,小写函数、小写结构体仅是包内可见 3.为一个结构体定义的方法,必须放在同一个包内,可以是不同的文件 ①但是如果想扩展结构体的方法,也就是说 阅读全文
posted @ 2022-06-15 22:12 南风丶轻语 阅读(638) 评论(0) 推荐(0) 编辑
摘要:1、结构体的定义 定义:type xxx struct 使用:var关键字创建、冒号:创建、new关键字创建 例如 package main import "fmt" type treeNode struct { value int left, right *treeNode } func main 阅读全文
posted @ 2022-06-15 21:37 南风丶轻语 阅读(26) 评论(0) 推荐(0) 编辑
摘要:1、先看看Go语言存的字符串的表示 写在前面:Go语言中的rune其实就是其他类型的char,它的本质是int32 先举个例子看看字节形式 package main import "fmt" func main() { s := "hello world 墨玉麒麟" //先看看字节组成 b := [ 阅读全文
posted @ 2022-06-14 22:18 南风丶轻语 阅读(781) 评论(0) 推荐(0) 编辑
摘要:1、定义Map map[key]value形式申明 make方式申明 package main import "fmt" func main() { m := map[string]string{"a": "1", "b": "2"} //冒号:定义 fmt.Println(m) //map[a:1 阅读全文
posted @ 2022-06-14 21:40 南风丶轻语 阅读(116) 评论(0) 推荐(0) 编辑
摘要:1、来源于数组的切片 package main import "fmt" func main() { a := [...]int{1, 2, 3, 4, 5, 6, 7, 8} //添加了...表示数组 b := a[2:6] //切片 fmt.Println(b) //[3 4 5 6] 左包右不 阅读全文
posted @ 2022-06-13 22:27 南风丶轻语 阅读(59) 评论(0) 推荐(0) 编辑
摘要:1、使用var关键字申明,指定数组的长度 package main import "fmt" func main() { var a [5]int fmt.Println(a) //默认是零值[0 0 0 0 0] var b [5]string fmt.Println(b) //默认是零值[] v 阅读全文
posted @ 2022-06-12 11:32 南风丶轻语 阅读(107) 评论(0) 推荐(0) 编辑
摘要:1、一般用法 以func关键字申明,传入参数名称写在前,参数类型写在后 返回可以申明返回值名称,也可以不申明,申明返回值时返回类型写在后,申明返回值,相当于定义了一个变量,来接返回值(一般不建议使用,毕竟函数体一大就不是很清晰能看到那里赋值了) 返回可以返回多个值 不接收某个返回值,用下划线_代替就 阅读全文
posted @ 2022-06-12 10:37 南风丶轻语 阅读(39) 评论(0) 推荐(0) 编辑
摘要:Go条件语句的基本使用 1、一般使用 package main import "fmt" func main() { s := 0 for i := 1; i <= 100; i++ { s += i } fmt.Println(s) } 2、省略起始条件 package main import ( 阅读全文
posted @ 2022-06-11 20:38 南风丶轻语 阅读(34) 评论(0) 推荐(0) 编辑
摘要:Go语言Switch的用法 1、等值匹配 package main import "fmt" func f(a, b int, op string) int { switch op { case "+": return a + b case "-": return a - b case "*": r 阅读全文
posted @ 2022-06-11 20:12 南风丶轻语 阅读(84) 评论(0) 推荐(0) 编辑
摘要:Go语言的安装 1、下载地址 https://studygolang.com/dl Windows系统下载msi文件(例如https://golang.google.cn/dl/go1.18.3.windows-386.msi),然后安装就直接下一步,下一步就行 Linux系统下载tar.gz文件( 阅读全文
posted @ 2022-06-11 19:11 南风丶轻语 阅读(371) 评论(0) 推荐(0) 编辑
摘要:Go定义常量和枚举类型 1、使用const定义常量 package main func main() { const a = 1 //使用const定义常量 const b, c = "b", "c" //使用const定义常量 const filename = "a.txt" //使用const定 阅读全文
posted @ 2022-06-11 16:11 南风丶轻语 阅读(117) 评论(0) 推荐(0) 编辑
摘要:gorm查询条件中带有limit的同时查询count总条数 1、场景 假设我需要查询用户表中年龄是18岁的用户,且取第4 14条数据,则sql语句应为 sql SELECT FROM WHERE age = 18 ORDER BY username asc LIMIT 10 OFFSET 3 sql 阅读全文
posted @ 2022-01-19 16:03 南风丶轻语 阅读(3453) 评论(0) 推荐(0) 编辑
摘要:1、URL的定义信息 type URL struct { Scheme string Opaque string // encoded opaque data User *Userinfo // username and password information Host string // hos 阅读全文
posted @ 2022-01-17 16:56 南风丶轻语 阅读(5901) 评论(0) 推荐(0) 编辑
摘要:说明 抄自官方文档 https://xuri.me/excelize/zh-hans/ bilibili https://www.bilibili.com/video/BV1hU4y1F7wQ 安装 使用最新版本 Excelize 要求您使用的 Go 语言为 1.15 或更高版本。 安装命令 go 阅读全文
posted @ 2021-12-25 22:44 南风丶轻语 阅读(4079) 评论(0) 推荐(0) 编辑
摘要:1、判断是否为零值 package main import ( "fmt" "reflect" ) type A struct { Name string } func IsBlank(i interface{}) bool { value := reflect.ValueOf(i) switch 阅读全文
posted @ 2021-12-21 17:48 南风丶轻语 阅读(535) 评论(3) 推荐(1) 编辑