摘要: 目录 @[toc] 方法的声明和使用 receiver Go中虽没有class,但依旧有method 通过显示说明receiver来实现与某个类型的组合 不存在方法重载 不存在方法重载,像下面这样的情况是不存在的 只能为同一个包中的类型定义方法 receiver可以是类型的值或者指针 可以使用值或者 阅读全文
posted @ 2019-08-23 18:15 leafs99 阅读(247) 评论(0) 推荐(0)
摘要: 目录 @[toc] 定义与使用 Go中struct与C中的struct非常相似,并且Go没有class,没有构造函数 使用 结构定义,名称遵循可见性规则(大写开头表示public,非大写开头为private) 指向指向自身的指针类型成员,(类似this??) 可以使用字面值对结构进行初始化 允许直接 阅读全文
posted @ 2019-08-23 18:14 leafs99 阅读(233) 评论(0) 推荐(0)
摘要: 目录 @[toc] Tips Go函数 不支持 嵌套,重载 和 默认参数 但支持以下特性: 无需声明原型,不定长度变参,多返回值,命名返回值参数,匿名函数,闭包 定义函数使用关键字func,并且左大括号不能另起一行 函数定义,不定长变参,传递值类型与引用类型 值类型传递和引用类型传递都是拷贝,但是值 阅读全文
posted @ 2019-08-23 18:13 leafs99 阅读(187) 评论(0) 推荐(0)
摘要: 目录 @[toc] 简介 类似其他语言的哈希表或者字典,以key value的形式存储数据 key必须支持==或者!=比较运算的类型,不能是函数,map或者slice(他们都不支持),但是value可以呀,嘿嘿 map查找比线性搜索快很多,但比使用索引访问数据的类型慢100倍(array,slice 阅读全文
posted @ 2019-08-23 18:11 leafs99 阅读(178) 评论(0) 推荐(0)
摘要: 目录 @[toc] 简介 slice本身不是数组,它指向底层的数组 是作为边长数组的替代方案,可以关联底层数组的局部或者全部 为引用类型,类似指针 可以直接创建或从底层数组获取生成,也可以用=直接从别的slice赋值 使用len() 获取元素个数,cap()获取容量 一般使用make()创建,mak 阅读全文
posted @ 2019-08-23 18:10 leafs99 阅读(164) 评论(0) 推荐(0)
摘要: 目录 @[toc] 注意事项 数组在Go中是值类型,不是引用 类型和长度都相同的数组之间可以使用==或者!=进行比较(Go中已经实现了),但是没有 Go支持多维数组 数组定义 Tips 两个数组不能直接赋值 数组定义格式: 数组长度也是类型的一部分,因此不同长度数组为不同的类型 可以用索引初始化下标 阅读全文
posted @ 2019-08-23 18:07 leafs99 阅读(193) 评论(0) 推荐(0)
摘要: [toc] 注意事项 运算符 tips Go中的运算符都是从左到右结合的 优先级从高到低: 移位运算 a "运算符,直接采用"."来操作指针目标对象成员 操作符"&"去变量地址,使用" "通过指针间接访问目标对象 默认值是 nil ,不是NULL 递增递减语句 在Go中,++与 作为语句而不是表达式 阅读全文
posted @ 2019-08-23 18:03 leafs99 阅读(390) 评论(0) 推荐(0)
摘要: 目录: @[toc] 注意事项 省略调用和别名不能同时使用 go关键字25个,都是小写 常量,变量,类型,接口,结构,首字母大写就是public,首字母小写是private,一个包是一个整体 常量,变量,一般类型(非struct,interface)都可以组合成组 var只能声明全局变量,也可以在函 阅读全文
posted @ 2019-08-23 17:50 leafs99 阅读(228) 评论(0) 推荐(0)
摘要: [toc] Commentary(注释) 每一个包都应该有一个 commentary,多文件的包在一个文件里 commentary 就可以了,内容详细或简洁由包来决定 使用纯文本,注意拼写,语法,句子结构 每一个(大写字母开头)导出的名字,都应该有一个 doc commentary doc comm 阅读全文
posted @ 2019-08-23 17:47 leafs99 阅读(402) 评论(0) 推荐(0)