Gin 配置 官网配置:https://gorm.io/zh_CN/docs/gorm_config.html 12345678910111213db, err := gorm.Open( sqlite.Open("gorm.db"), &gorm.Config{ NamingStrategy: schema.NamingStrategy{ 2024-11-14 Go #Go
Go GOPATH golang 做包管理有两种方式,分别是 gopath 和 gomod,这两种是互斥的,不可混用。 一、GOPATHGOPATH 是 Go 语言中使用的一个环境变量,它使用绝对路径提供项目的工作目录(也称为工作区)。 工作目录是一个工程开发的相对参考目录,好比当你要在公司编写一套服务器代码,你的工位所包含的桌面、计算机及椅子就是你的工作区。 工作区的概念与工作目录的概念也是类似的。如果不使用工 2024-11-11 Go #Go
Go Modules https://go.dev/blog/using-go-modules golang 做包管理有两种方式,分别是 gopath 和 gomod,这两种是互斥的,不可混用。 1、什么是 Go Modules?Go modules 是 Go 语言的依赖解决方案,发布于 Go1.11,成长于 Go1.12,丰富于 Go1.13,正式于 Go1.14 推荐在生产上使用。 Go modules 目 2024-11-11 Go #Go
Go Modules 之 go.mod go.mod 简介 go mod init abc 初始化命令会在当前目录下生成 go.mod 文件,在一个项目中,此文件只需要一份,放置在项目根目录。 go.mod 格式12345678910111213141516171819202122232425// 项目名,别人引入你这个项目的路径module github.com/a/b// 2024-11-11 Go #Go
Go 安装(Linux) 安装 首先,确定你的 Linux 中是否已经安装了 Go。 打开终端,输入命令:go version 如果没有安装,该命令将返回 command not found。 下载 Go。 访问 Go 的官方网站: https://golang.google.cn/dl/ 。下载 go 安装包 go1.20.3.darwin-amd64.pkg 或其他版本。 架构选择 amd64 还是 x86-64 取 2024-11-11 Go #Go
Go 安装(Mac) 安装 首先,确定你的 Mac 电脑中是否已经安装了 Go。 打开终端,输入命令:go version 如果没有安装,该命令将返回 command not found。 下载 Go。 访问 Go 的官方网站: https://golang.google.cn/dl/ 。下载 go 安装包 go1.20.3.darwin-amd64.pkg 或其他版本。 架构选择 amd64 还是 x86-64 取 2024-11-11 Go #Go
Go 安装(Windows) 安装Go 有多种安装方式,最常见的安装方式有三种,你可以选择自己喜欢的。 Go源码安装:这是一种标准的软件安装方式。对于经常使用类Unix系统的用户,尤其对于开发者来说,从源码安装可以自己定制。 Go标准包安装:Go提供了方便的安装包,支持Windows、Linux、Mac等系统。这种方式适合快速安装,可根据自己的系统位数下载好相应的安装包,一路next就可以轻松安装了。推荐这种方式. 第三 2024-11-11 Go #Go
Go 私有仓库下载 直接使用 go get ... 添加私有仓库依赖时,会出现以下错误: 12345go get: module github.com/unknown/com: git ls-remote -q origin in D:\IDEA\go\pkg\mod\cache\vcs\ca60e3dfa1619897170f0f21e6f875c057be28088185a4024963a17a2db23167: 2024-11-11 Go #Go
01-hello world 12345678910package mainimport "fmt"func main() { /* 简单的程序 万能的hello world */ fmt.Println("Hello world")} 代码解读 第一行代码 package main 定义了包名。你必须在源文件中非注释的第一行指明这个文件属于哪个包,如:package main。packag 2024-11-01 Go #Go
02-变量 变量的声明声明变量的一般形式是使用 var 关键字 单个变量声明第一种,指定变量类型,声明后若不赋值,使用默认值0。 12345// 格式var v_name v_type// 示例var a int 第二种,根据值自行判定变量类型。 12345// 格式var v_name = value// 示例var a = 1 第三种,省略 var, 注意 := 左侧的变量不应该是已经声明过的,否则会 2024-11-01 Go #Go
03-常量 常量常量是一个简单值的标识符,在程序运行时,不会被修改的量。 常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型。 常量的定义格式: 1const identifier [type] = value 你可以省略类型说明符 [type],因为编译器可以根据变量的值来推断其类型。 显式类型定义: 1const b string = "abc" 隐式类型定义: 1const 2024-11-01 Go #Go
04-函数 函数的声明注意:定义函数的时候,‘{’ 必须和函数名在同一行,不能另起一行。 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950package mainimport "fmt"func main() { println("foo1:", foo1(1, 3 2024-11-01 Go #Go
06-slice 和 map 数组数组长度固定,不建议用 123456789101112131415161718192021222324252627282930313233package mainimport "fmt" //不建议使用,可以使用动态数组func printArray (array [4]int){ //值拷贝 fmt.Println("---------------输出函数------------- 2024-11-01 Go #Go
07-结构体 结构体的使用1234567891011121314151617181920212223242526272829303132333435363738394041package main import "fmt" // 声明一种数据类型,myint是int的别名type myint int// 声明结构体type Book struct{ title string auth string 2024-11-01 Go #Go
07-面向对象 封装1234567891011121314151617181920212223242526272829303132333435package main import "fmt" // 类名、属性名、方法名、首字母大写代表其他包可以访问,首字母小写代表私有,只有本包内可以使用type Hero struct { Name string Ad int Level int} // 如 2024-11-01 Go #Go
08-interface与类型断言 简介Golang 的语言中提供了断言的功能。golang 中的所有程序都实现了 interface{} 的接口,这意味着所有的类型如 string,int,int64 甚至是自定义的 struct 类型都就此拥有了 interface{} 的接口,这种做法和 java 中的 Object 类型比较类似。那么在一个数据通过 func funcName(interface{}) 的方式传进来的时候,也 2024-11-01 Go #Go
09-反射 reflect 编程语言中反射的概念在计算机科学领域,反射是指一类应用,它们能够自描述和自控制。也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-representation)和监测(examination),并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。 每种语言的反射模型都不同,并且有些语言根本不支持反射。Golang语言实现了反射,反射机制就是在运行时动态的调用 2024-11-01 Go #Go
10-结构体标签 12345678910111213141516171819202122232425262728package mainimport ( "fmt" "reflect")type resume struct { Name string `json:"name" doc:"我的名字"`}func findDoc(stru interface{} 2024-11-01 Go #Go
11-goroutine 协程并发协程:coroutine。也叫轻量级线程。 与传统的系统级线程和进程相比,协程最大的优势在于“轻量级”。可以轻松创建上万个而不会导致系统资源衰竭。而线程和进程通常很难超过1万个。这也是协程别称“轻量级线程”的原因。 一个线程中可以有任意多个协程,但某一时刻只能有一个协程在运行,多个协程分享该线程分配到的计算机资源。 多数语言在语法层面并不直接支持协程,而是通过库的方式支持,但用库的方式支持 2024-11-01 Go #Go
中文文案排版指北 GitHub:https://github.com/sparanoid/chinese-copywriting-guidelines 中文文案排版指北统一中文文案、排版的相关用法,降低团队成员之间的沟通成本,增强网站气质。 空格 「有研究显示,打字的时候不喜欢在中文和英文之间加空格的人,感情路都走得很辛苦,有七成的比例会在 34 岁的时候跟自己不爱的人结婚,而其余三成的人最后只能把遗产留给自己 2024-10-10 建站 > hexo #建站 #hexo