![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Go语言学习
cdzjava
这个作者很懒,什么都没留下…
展开
-
Go语言学习笔记一--基础语法
学习Golang原因,也是因为自己比较懒,早在6月份时候就想要去学习Golang,一直拖到现在才开始.首先因为区块链技术领域中有很多框架/系统的编写使用golang来写,追述其根源也引起自己学习的第二个原因,这是一个能够支持极高并发的语言,其诞生所解决的痛点便是高性能服务器,且语言简洁优美.其对于并发在底层与其他语言(java等)是不同的操作,现在还只有一些模糊的概念在心里,并不能讲的非常清楚,愿...原创 2019-01-19 10:04:41 · 292 阅读 · 0 评论 -
Go语言学习笔记十四--面向接口-函数式编程
函数式编程概念在函数式编程中,应用最多的就是闭包。在计算机科学中,闭包(英语:Closure),又称词法闭包(Lexical Closure)或函数闭包(function closures),是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。闭包在运行时可以有多个实例,不...原创 2019-02-13 16:06:08 · 511 阅读 · 0 评论 -
Go语言学习笔记十三--面向接口-常用系统接口
stringer接口在print包下stringer接口// Stringer is implemented by any value that has a String method,// which defines the ``native'' format for that value.// The String method is used to print values pass...原创 2019-02-13 16:05:10 · 243 阅读 · 0 评论 -
Go语言学习笔记十二--面向接口-接口组合
接口的组合(类似Java中接口的多继承)在GO中,接口的组合,类似于Java中接口的多继承.接着 上一篇继续定义两个接口://定义一个post的接口type Poster interface { Post(url string,params map[string]string)string}//接口组合: 定义一个 session接口type Session interfa...原创 2019-02-13 16:04:31 · 398 阅读 · 1 评论 -
Go语言学习笔记十一--面向接口-接口的定义与实现
上一篇我们介绍了duck typing概念,主要讲述GO语言中,如何解决duck typing中编译器不提示错误,和没有duck typing的Java灵活性不够问题.如何定义一个接口GO中定义接口可以使用关键字interfacetype Retriever interface { //使用interface关键字 Get(url string)string //接口的方法}接...原创 2019-02-13 16:04:00 · 143 阅读 · 0 评论 -
Go语言学习笔记十--面向接口
duck typing概念要理解duck typing的概念,先问一个问题.上图是不是一个鸭子?在程序设计中,鸭子类型(英语:duck typing)是动态类型的一种风格。在这种风格中,一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由"当前方法和属性的集合"决定。这个概念的名字来源于由James Whitcomb Riley提出的鸭子测试(见下面的“历史”章节),“鸭子测试...原创 2019-02-13 16:03:23 · 196 阅读 · 0 评论 -
Go语言学习笔记九--面向"对象"-拓展已有的类型
如何拓展已有的类?别名组合因为在GO语言中是没有继承的,所以对于拓展已有的类,我们常做的方法是,创建一个私有类,然后我们对需要推展的类,进行包装.包装我们之前写的tree.Node:/**拓展已有的类:拓展我们自己写的tree.Node */type myTreeNode struct { node *tree.Node //最好是指针 因为go特性声明指针 就会...原创 2019-02-13 16:02:46 · 107 阅读 · 0 评论 -
golang学习笔记八--Go自定义结构不能导入包?(GOPATH解密)
包包的概念在很多编程语言都有,Go语言中包的概念还是挺有意思的.一个目录下只有一个包包的命名与目录可以不同(这点与Java不同)main包下有一个可执行入口,所以main方法只能在main包下执行go语言不以文件为基本单元,而是包为基本单元,一个结构体可以是不同文件的组合但必须在同一包下封装采用camelCase命名规则大写为public小写为private不能导入自定...原创 2019-01-22 19:02:26 · 2040 阅读 · 0 评论 -
Go语言学习笔记七--面向"对象"-结构体与方法
概念go中的面向对象:只能封装,没有继承与多态没有class,定义结构体使用struct关键字定义结构体type treeNode struct { value int left, right *treeNode //指针}创建对象 var root treeNode root.value = 1 root.left = &a...原创 2019-01-19 10:16:40 · 466 阅读 · 0 评论 -
Go语言学习笔记六--string编码
分解探索string编码转为byte数组func main() { s := "Hi小智加油!" fmt.Println("len(s):",len(s)) //len(s): 15 为什么是15呢? for _, v := range []byte(s) { fmt.Printf("%X ",v) //%X 转为16进制 //48 ...原创 2019-01-19 10:15:22 · 493 阅读 · 0 评论 -
Go语言学习笔记五--map
map的创建func main() { //创建 map studens := map[string]string{ "name": "张三", "age": "18", "sex": "男", } //直接创建有值的map var m2 map[string]int //map == nil原创 2019-01-19 10:13:51 · 130 阅读 · 0 评论 -
Go语言学习笔记四--数组与切片
数组创建数组定义数组也准寻golang的基本定义习惯,变量类型在前,变量名在后/**创建一个数组 */func createArrays() { //第一种 定义数组 var arr1 [5]int //不指定数组值,默认int为0 //第二种 定义数组方式 arr2 := [3]int{1, 2, 3} //设置初始值 //可变长度...原创 2019-01-19 10:11:28 · 278 阅读 · 0 评论 -
Go语言学习笔记三--基础语法
函数在golang中函数是作为一等公民存在的,而这个一等公民,我理解得意思就是可以在任何地方使用到函数,函数中参数可以是函数,返回也可以是函数.正常定义函数/**正常定义函数,(还是准寻golang定义原则变量名在前,变量类型在后,如果多个参数类型一致可以一起定义)*/func eval(a, b int, op string) int { switch op { ca...原创 2019-01-19 10:09:53 · 278 阅读 · 0 评论 -
Go语言学习笔记二--判断语言
if语句if语言demo,可以看出 if语句后条件不需要加()/**if语言demo,可以看出 if语句后条件不需要加()*/func ifDemo() { const filename = "adc.txt" bytes, e := ioutil.ReadFile(filename) //golang返回值可以是多个,需要多个值来接收 if e != nil { f...原创 2019-01-19 10:08:00 · 277 阅读 · 0 评论 -
Go语言学习笔记十五--资源管理与错误处理-defer
defer概念defer其实就相当于Java中的try{}finally{}中finally用法.我们看一下defer的定义:简单使用:func tryDefer() { file, err := os.Open("README.md") if err!=nil { panic(err) } defer file.Close()//直接在这里写...原创 2019-02-13 16:07:22 · 184 阅读 · 0 评论