Golang 基础学习
Golang 基础学习的总结文章
wide288
头脑的清醒更有利于高级思维的活动。
展开
-
Golang——for循环的两种用法【讨论】
有网友指出我转载的文章的错误,我是没有好好检查并测试上面的代码,现在我写了一个测试代码。文章地址是:https://blog.youkuaiyun.com/wide288/article/details/97614826#comments评论中的讨论是:测试代码如下:package mainimport "fmt"func main() { fmt.Println("Hello,...原创 2019-10-16 10:19:41 · 464 阅读 · 0 评论 -
读《golang 标准库》第十三章
应用构建与 debug flag - 命令行参数解析 flag 包概述 定义 flags 有两种方式 flag.Xxx(),其中 Xxx 可以是 Int、String 等;返回一个相应类型的指针 flag.XxxVar(),将 flag 绑定到一个变量上 ...原创 2019-10-15 17:48:21 · 180 阅读 · 0 评论 -
读《golang 标准库》第十章第二节
进程属性和控制 进程ID 进程凭证 实际用户ID和实际组ID 有效用户ID和有效组ID Set-User-ID 和 Set-Group-ID 程序 修改进程的凭证 golang.org/x/sys包 os.Getgroups() 操作系统用户 os/...原创 2019-10-15 08:59:39 · 135 阅读 · 0 评论 -
读《golang 标准库》第九章
testing方便进行 Go 包的自动化单元测试、基准测试 net/http/httptest提供测试HTTP的工具 testing - 单元测试测试用例有四种形式:TestXxxx(t testing.T) // 基本测试用例BenchmarkXxxx(b testing.B) // 压力测试的测试用例Example_Xxx() // 测试控制台输...转载 2019-10-14 10:31:05 · 157 阅读 · 0 评论 -
读《golang 标准库》第七章
第七章 数据持久存储与交换DBsql.DB 类型代表了一个数据库。这点和很多其他语言不同,它并不代表一个到数据库的具体连接,而是一个能操作的数据库对象,具体的连接在内部通过连接池来管理,对外不暴露。这点是很多人容易误解的:每一次数据库操作,都产生一个 sql.DB 实例,操作完 Close。Results定义了三种结果类型:sql.Rows、sql.Row 和 sql.Result...原创 2019-10-12 09:34:28 · 111 阅读 · 0 评论 -
读《golang 标准库》第六章
第五章,空第六章,文件系统可以处理文件系统中的文件、构造和解析文件名等golang 标准库io/ioutil,读取文件,生成临时目录/文件 https://www.cnblogs.com/benlightning/p/4343745.html3.创建临时目录(os.TempDir()返回的是操作系统的temp目录)dir, err := ioutil.TempDir...原创 2019-10-11 20:48:42 · 132 阅读 · 0 评论 -
golang 语言数组判断空 2019-8-14 修改
package mainimport "fmt"func main() { var arr []string if arr == nil { fmt.Println("this is null") } if len(arr) > 0 { fmt.Println("len arr > 0") }else{ fmt.Println("len this ...原创 2018-12-10 11:13:34 · 10788 阅读 · 2 评论 -
golang 结构体中的匿名方法字段
package serviceimport "fmt"type Command struct { // Run runs the command. // The args are the arguments after the command name. Run func(args string) int // PreRun performs an operation befo...原创 2018-11-22 11:42:01 · 1177 阅读 · 0 评论 -
Golang 目录工程组织规范
先了解golang 项目的工程组织规范,以及远程包/本地包$GOPATH├─bin├─pkg└─src └─github.com(远程包) └─golang.org(远程包) └─your_pkg_src(本地包)简要的说一说吧,以go-sqlite3为例,包的源码和项目中通常的引用方式为:import github.com/mattn/go-sqlite...转载 2018-11-21 09:46:11 · 871 阅读 · 0 评论 -
golang map 声明,赋值
// 先声明mapvar m1 map[string]string// 再使用make函数创建一个非nil的map,nil map不能赋值m1 = make(map[string]string)// 最后给已声明的map赋值m1["a"] = "aa"m1["b"] = "bb"// 直接创建m2 := make(map[string]string)// 然后赋值m2["a"] = "aa&qu转载 2018-11-20 15:27:40 · 5516 阅读 · 0 评论 -
golang 在 centos 7 上编译报错: import cycle not allowed
查看了环境变量,go env看了安装目录和 go 的版本 go version看了源码和第三方库的下载情况。go get *** 都没有问题,准备重新安装 go因为发现与 win10 上的版本不一致win10 上是 1.11, 正常centos 7 是 1.8.3,报错下载,解压。编译成功。问题解决。...原创 2018-11-09 11:28:22 · 416 阅读 · 0 评论 -
golang e:\\中文_2018-11-07 18:05:49.xlsx: The filename, directory name, or volume label syntax i
这个报错看了一会儿才注意到文件名中有 :帽号。还是在 win10 下。救赎吧。原创 2018-11-07 18:10:14 · 1480 阅读 · 2 评论 -
golang 打印变量类型
直接使用reflect的TypeOf方法就可以了模块是: "reflect"fmt.Println(reflect.TypeOf(var)) 切片类型的输出原创 2018-11-06 16:23:59 · 17898 阅读 · 0 评论 -
golang:json.Marshal转结构体,结构体属性为空
我也遇到这个问题了。跟踪了好久才确定这个方法出问题。https://blog.youkuaiyun.com/hsnxiaoning/article/details/78910837看到了这个出现问题的原因:猜测原因可能是由于需要调用结构体中的属性,但是我的结构体开头字母是小写的,也就是是private权限改成大写字母开头即可了。 ...转载 2018-11-06 19:55:35 · 1648 阅读 · 0 评论 -
golang 字符串连接
主要结论在已有字符串数组的场合,使用 strings.Join() 能有比较好的性能 在一些性能要求较高的场合,尽量使用 buffer.WriteString() 以获得更好的性能 性能要求不太高的场合,直接使用运算符,代码更简短清晰,能获得比较好的可读性 如果需要拼接的不仅仅是字符串,还有数字之类的其他需求的话,可以考虑 fmt.Sprintfhttps://studygolang....转载 2018-11-05 14:11:19 · 332 阅读 · 0 评论 -
golang 玩转配置文件的读取和实现
https://blog.youkuaiyun.com/skh2015java/article/details/78505731转载的,只用到第一部分了。转载 2018-11-05 14:01:22 · 3249 阅读 · 0 评论 -
golang 单元测试总结思维导图
原创 2018-11-02 11:45:50 · 488 阅读 · 0 评论 -
golang 的程序执行顺序
https://blog.youkuaiyun.com/claram/article/details/77745665这个网址讲的已经很全面了。就不复制了。initmain是二个保留函数。其它没有特别要再重复的了。转载 2018-11-01 16:32:46 · 1432 阅读 · 0 评论 -
近期学会的 golang 操作
使用到项目中。原创 2018-10-31 20:05:25 · 196 阅读 · 0 评论 -
golang 查询数据库(基础版)返回数据无序,随机的。
文件目录结构Main.go 代码Gold_db_service.go 代码package serviceimport ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql")//gold_db_service.gofunc PrintTest() { fmt.Println("test prin...原创 2018-10-31 10:07:51 · 1719 阅读 · 0 评论 -
GO 编程语言关键字
https://www.cnblogs.com/zsy/archive/2017/04/23/6753756.html这个链接中的是关键词的分支图。很形象。我以前写的只是一个表格。appendcopyint8niltruebooldeleteint16Panic 中止外围函数或方法uintbyte 等同 uint8errorint32printuint8capfalseint64printlnui...原创 2018-05-01 00:26:01 · 483 阅读 · 2 评论 -
golang map 使用示例代码
package main import “fmt” // PersonInfo是一个包含个人详细信息的类型 type PersonInfo struct { ID string Name string Address string } func main() { var personDB map[string] PersonInfo //...原创 2018-09-17 14:36:37 · 409 阅读 · 0 评论 -
Beego API 操作记录
创建 API 项目(通过数据库创建 Restful 风格 API 项目)命令是:bee api giftPoolstatistictsV3 -conn="root:123456@tcp(127.0.0.1:3306)/gift_pool"giftPoolstatistictsV3 是项目名称root 数据库用户名称123456 数据库密码127.0.0.1 数据库地址g...原创 2018-09-15 14:29:00 · 1215 阅读 · 0 评论 -
golang Hello world!
/** * 编译命令: * go build ./ * 生成二进制可执行文件。 test.exe * 注意:字符串用双引号引用。 */package mainimport "fmt"func main() { fmt.Println("hello world.")}https://blog.youkuaiyun.com/wide288/article/details/78...原创 2018-10-30 10:46:11 · 352 阅读 · 0 评论 -
读《golang 标准库》第二章
第二章 文本strings 包提供了很多操作字符串的简单函数strconv 包提供了基本数据类型和字符串之间的转换。mahonia — 纯 Go 语言实现的字符集转换库,以方便需要进行字符集转换的读者。字符串常见操作有:* 字符串长度;* 求子串;* 是否存在某个字符或子串;* 子串出现的次数(字符串匹配);* 字符串分割(切分)为[]string;*...原创 2019-10-09 09:27:57 · 206 阅读 · 0 评论 -
读《golang 标准库》第三章, 大部分同原文,补充一段代码
1. 3.1 sort —— 排序算法该包实现了四种基本排序算法:插入排序、归并排序、堆排序和快速排序。 但是这四种排序方法是不公开的,它们只被用于sort包内部使用。所以在对数据集合排序时不必考虑应当选择哪一种排序方法,只要实现了sort.Interface定义的三个方法:获取数据集合长度的Len()方法、比较两个元素大小的Less()方法和交换两个元素位置的Swap()方法,就可以顺...转载 2019-10-09 13:35:27 · 161 阅读 · 0 评论 -
读《golang 标准库》第三章 第三节
1. 3.3 container — 容器数据类型:heap、list和ring该包实现了三个复杂的数据结构:堆,链表,环。 这个包就意味着你使用这三个数据结构的时候不需要再费心从头开始写算法了。1.1. 3.3.1 堆这里的堆使用的数据结构是最小二叉树,即根节点比左边子树和右边子树的所有值都小。 go的堆包只是实现了一个接口,我们看下它的定义:type Interface int...转载 2019-10-10 09:29:59 · 198 阅读 · 0 评论 -
读《golang 标准库》第四章 第一节
Time代表一个纳秒精度的时间点,是公历时间。后面会详细介绍。Duration代表两个时间点之间经过的时间,以纳秒为单位。可表示的最长时间段大约290年,也就是说如果两个时间点相差超过 290 年,会返回 290 年,也就是 minDuration(-1 << 63) 或 maxDuration(1 << 63 - 1)。类型定义:type Durat...原创 2019-10-11 10:58:54 · 194 阅读 · 0 评论 -
golang 字符串是否包含,示例代码有创意
import ( "fmt" "strings")func main() { fmt.Println(strings.Contains("widuu", "wi")) //true fmt.Println(strings.Contains("wi", "widuu")) //false}字符串是否包含,示例代码有创意转载 2019-08-29 20:55:45 · 2180 阅读 · 0 评论 -
解决上一篇 golang 浮点数问题
package main import ( "fmt" "github.com/robaho/fixed" "github.com/shopspring/decimal" ) func main() { fmt.Println("Hello, 世界") var ii float32 = 28.90 totalAmountFixed := fixed.NewF(float64...原创 2019-08-21 10:31:04 · 339 阅读 · 0 评论 -
golang gorm 最近在整理它的标签
结构标签标签是声明模型时可选的标记。GORM 支持以下标记:支持的结构标签标签 说明 Column 指定列的名称 Type 指定列的类型 Size 指定列的大小,默认是 255 PRIMARY_KEY 指定一个列作为主键 UNIQUE 指定一个唯一的列 DEFAULT 指定一个列的默认值 PRECISION 指...转载 2019-09-19 22:04:25 · 2038 阅读 · 0 评论 -
基础变量类型互换 2019-8-25 版
1 int uint8 2ascii strconv.Itoa() 整...原创 2019-08-26 09:02:37 · 148 阅读 · 0 评论 -
golang 的变量作用域的理解示例
package mainimport "fmt"func main() { fmt.Println("Hello, 世界")// str := "local var"var str string if true { str = "block var"// fmt.Println(str) } fmt.Println(str)...原创 2019-08-30 16:02:38 · 220 阅读 · 0 评论 -
golang 的操作系统支持【chrome 机器翻译的】
AIXPPC64(aix/ppc64)上的AIX现在支持cgo,外部链接c-archive以及pie构建模式。Android的Go程序现在与Android 10兼容。FreeBSD的由于公布的围棋1.12发行说明,请现在1.13的FreeBSD需要11.2或更高版本;对以前版本的支持已经停止。FreeBSD 12.0或更高版本需要一个带有COMPAT_FREEBSD11选...转载 2019-09-05 09:28:18 · 791 阅读 · 0 评论 -
在 Go 1.13 中如何使用 goproxy.cn
问:在 Go 1.13 中如何使用 goproxy.cn?答:一条 go env-w GOPROXY=https://goproxy.cn,direct 即可。之所以在后面拼接一个 ,direct,是因为通过这样做我们可以在一定程度上解决私有库的问题(当然, goproxy.cn 无法访问你的私有库)。这个 GOPROXY 设定的工作原理是:当 go 在抓取目标模块时,若遇见了 404 错...转载 2019-09-05 09:49:08 · 5683 阅读 · 0 评论 -
golang url.Values 的初始化
v := url.Values{}for _, a := range collectioner { v.Add("itemId", a.ItemID) v.Add("couponId", a.CouponID)}fmt.Println("v=")fmt.Println(v)写此篇时,没用上。最后删除了。原创 2019-09-12 11:56:48 · 4586 阅读 · 0 评论 -
golang 结构体数组的初始化赋值
collArr := []*Collection{ &Collection{ ItemID: "592525", CouponID: "96f1aa53473c99", },}结构体使用的方法参数值func Collec(collectr []*Collection) error {原创 2019-09-12 12:02:39 · 7277 阅读 · 1 评论 -
golang gorm 结构体的表字段缺省值设置
type Animal struct { ID int64 Name string `gorm:"default:'galeone'"` Age int64}把 name 设置上缺省值 galeone 了。原创 2019-09-14 00:29:23 · 4769 阅读 · 0 评论 -
golang gorm query
// Get first record, order by primary keydb.First(&user)//// SELECT * FROM users ORDER BY id LIMIT 1;// Get one record, no specfied orderdb.Take(&user)//// SELECT * FROM users LIMIT 1;...转载 2019-09-14 01:17:35 · 225 阅读 · 0 评论 -
win10 子系统的理解加深
最开始我想用WSL来折腾图形界面,后来发现是完全没必要的,因为Win10和子系统是共享文件夹,我完全可以在Win10上操作源代码,在子系统里测试。但是Win10不能更改子系统下的文件,否则子系统就不能识别了。但是呢,子系统可以使用Win10的文件,而且是以权限777(全权限),拥有者为root的形式使用,所以我们可以把项目代码放在Win10的文件系统中,那么两边都可以用到了。这段内容借鉴了ht...原创 2019-09-19 19:06:57 · 202 阅读 · 0 评论