随笔分类 -  go自学习

摘要:对应关系 左值 可寻址 右值 不可寻址 可寻址:可以通过&取地址符,获取内存地址; 可寻址,也就是分配了内存; 不可寻址:根本没有分配内存; 常量const 常量通常只支持数字/字符串/布尔,以及他们的表达式,还有通过type定义的以这些基本类型封装的类型. 为什么只有这几个基本类型呢? 因为常量属 阅读全文
posted @ 2020-11-23 09:58 菜鸟++ 阅读(870) 评论(0) 推荐(0) 编辑
摘要:初学go时很多同学会把 值接收者 和 指针接收者 的方法相互调用搞混淆,好多同学都只记得指针类型可以调用值接收者方法和指针接收者方法,而值类型只能调用值接收者方法,其实不然,在某些情况下,值类型也是可以调用指针接收者方法的。 最近又看到有同学发出了这样的疑问,所以打算记录一下,用以备忘、分享。 类型 阅读全文
posted @ 2020-11-21 15:38 菜鸟++ 阅读(1269) 评论(0) 推荐(0) 编辑
摘要:在类型的实现方法上定义通用代码指令 var _ 要实现的接口 = (receiver类型)(nil) 比如要定义一个web处理程序 type handler_def struct{} var _ http.Handler = (*handler_def)(nil) //(*handler_def)( 阅读全文
posted @ 2020-11-20 14:25 菜鸟++ 阅读(419) 评论(0) 推荐(0) 编辑
摘要:Marshal func Marshal(v interface{})([]byte, error) Marshal returns the JSON encoding of v. Marshal返回v的JSON编码。 Marshal traverses the value v recursivel 阅读全文
posted @ 2020-11-16 15:23 菜鸟++ 阅读(1115) 评论(1) 推荐(1) 编辑
摘要:db.Exec(query string, args ...interface{}) Db.Exec(`CREATE TABLE IF NOT EXISTS STU(ID int(8) PRIMARY KEY AUTO_INCREMENT,NAME char(50))`) 其中query中可以使用? 阅读全文
posted @ 2020-11-16 13:31 菜鸟++ 阅读(683) 评论(0) 推荐(0) 编辑
摘要:标准方式: import ( "fmt" )使用:fmt.Println() 点(.)方式 import ( . "fmt" ) 使用时候,可以胜率fmt前缀Println() 别名 import( f "fmt" ) 使用方法:f是fmt的简称 f.Println() 下划线(_) import( 阅读全文
posted @ 2020-11-16 10:25 菜鸟++ 阅读(2294) 评论(0) 推荐(0) 编辑
摘要:命名分组(?<name>...) 捕获组 capture group 普通捕获组 (expression) 命名捕获组(?expression) 普通捕获组 从正则表达式左侧开始,每出现一个左括号"(",就记作一个分组,分组编号从1开始. 0代表整个表达式. 对于时间字符串: 2020-11-06, 阅读全文
posted @ 2020-11-06 15:58 菜鸟++ 阅读(221) 评论(0) 推荐(0) 编辑
摘要:iota.go strconv包 func isPowerOfTwo(x int) bool { return x & (x -1) } 了解n&(n-1)的作用如下: n&(n-1)作用:将n的二进制表示中的最低位为1的改为0,先看一个简单的例子: n = 10100(二进制),则(n-1) = 阅读全文
posted @ 2020-11-05 14:42 菜鸟++ 阅读(552) 评论(0) 推荐(0) 编辑
摘要:在strconv包中有个常量 const intSize = 32 << ( ^uint(0) >> 63 ) const IntSize = intSize 在32位平台这个值为32;在64位平台,这个值为64; 因此可以通过这个来判断平台的位数. 原理: 在32平台系统: 1. uint(0)在 阅读全文
posted @ 2020-11-05 09:52 菜鸟++ 阅读(1434) 评论(1) 推荐(0) 编辑
摘要:接口类型判断:接口.(类型) 1.类型查询:查询接口数据对应的类型是否是指定的类型 2.类型转化:如果是指定类型,就将数据转化为接口类型查询: 1.reflect.TypeOf(接口) 2.接口.(Type) 阅读全文
posted @ 2020-09-26 22:38 菜鸟++ 阅读(1344) 评论(0) 推荐(0) 编辑
摘要:0x00 问题 exported function xxx should have comment or be unexported。 0x01 解决 https://golang.org/s/style 在这个页面中有提到 Comment SentencesSee https://golang.o 阅读全文
posted @ 2020-09-26 01:54 菜鸟++ 阅读(3407) 评论(0) 推荐(0) 编辑
摘要:闭包_Closure: 1.一般情况下,第一类对象都是独立的封闭的存在的,独立的封闭的起作用; 2.第一类对象可以被创建; 3.第一类对象可以作为参数传递给其他函数; 4.第一类对象可以赋值给变量实体; 5.通常是没有闭包的概念的,因为没有那种特殊的场景; 6.但是在某些编程语言中(Go/PHP/J 阅读全文
posted @ 2020-09-24 10:17 菜鸟++ 阅读(439) 评论(0) 推荐(0) 编辑
摘要:使用go mod 可以在任何地方新建工程 工程目录 main.go //引用子包必须格式"工程目录/子包" go.mod 子包 编译工程: go build 阅读全文
posted @ 2020-09-16 00:11 菜鸟++ 阅读(1264) 评论(0) 推荐(0) 编辑
摘要:终端 go env -w GO111MODULE=on GOPATH-->src/pkg/bin in src源码包中 某个包中 go mod init XXX(表示当前报的第三方依赖) 然后才能下载并安装第三方包 go get github/..../v3 实际上go get就是git clone 阅读全文
posted @ 2020-09-07 21:22 菜鸟++ 阅读(434) 评论(0) 推荐(0) 编辑
摘要:golang中格式化符号说明 %v 值的默认格式表示 %+v 类似%v,但输出结构体时会添加字段名 %#v 值的Go语法表示 %T 值的类型的Go语法表示 %% 百分号 布尔值: %t 单词true或false 整数: %b 表示为二进制 %c 该值对应的unicode码值 %d 表示为十进制 %o 阅读全文
posted @ 2020-07-06 11:13 菜鸟++ 阅读(1820) 评论(0) 推荐(0) 编辑
摘要:类型定义是在当前包中的一直存在的.输出%T,发现类型前面都有main.前缀 类型别名,其实还是它的根本类型,别名只存在在代码中.编译后就不存在了,还是根本类型. 阅读全文
posted @ 2020-05-28 19:34 菜鸟++ 阅读(321) 评论(0) 推荐(0) 编辑
摘要:所以定义其他包的别名类型,通常会导致报错: type Talias = 其他包.T cannot define new methods on non-local type time.Duration 对于其他包中的类型,本地若想使用 可以在本地重新定义个自定义类型 type myT 其他包.T 阅读全文
posted @ 2020-05-28 19:30 菜鸟++ 阅读(640) 评论(0) 推荐(0) 编辑
摘要:命名类型:一个命名类型一定跟其他类型不同. 哪些是命名类型 1. 预先声明的类型,如int/int8/boo/float32... 2.使用type声明的类型,类似起别名,如type aInt int var i int // named type type myInt int // named t 阅读全文
posted @ 2020-05-28 19:06 菜鸟++ 阅读(830) 评论(0) 推荐(0) 编辑
摘要:预先类型: int/int8/bool/string ... 未命名类型:map[string]string []int [][]string 阅读全文
posted @ 2020-05-28 18:25 菜鸟++ 阅读(236) 评论(0) 推荐(0) 编辑
摘要:type switchs用法 这里存在一个未知类型变量的内省操作(introspection operation),就是x.(type),其中x是interface{}类型 阅读全文
posted @ 2020-05-28 11:34 菜鸟++ 阅读(512) 评论(0) 推荐(0) 编辑

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