
Golang
学习真是太难了
学习真是太痛苦了.
展开
-
GO语言:工厂模式(Factory Method)
GO简单工厂由于 Go 中缺少类和继承等 OOP(面向对象) 特性, 所以无法使用 Go 来实现经典的工厂方法模式。 不过, 我们仍然能实现的基础版本.场景一个制作玩具的工厂。代码结构为了方便展示 放到了不同的文件中Toy.go定义个玩具的接口 声明共有的方法package codeInHere//定义玩具产品接口type toy interface { SetName( name string) //需要个名字 GetName() string SetUnitPrice(原创 2021-04-10 15:28:28 · 643 阅读 · 0 评论 -
GO语言:转字符串
strconv.Itoa(120) //int 转字符串原创 2021-04-10 14:24:17 · 247 阅读 · 0 评论 -
Go语言:获取随机数
r := rand.New(rand.NewSource(time.Now().UnixNano))//使用当前时间戳 生成真正的随机数字 r.Intn(2) //取二以下的正数 0,1原创 2021-04-10 14:22:32 · 1119 阅读 · 1 评论 -
GO语言:gin框架实列
Gin框架问题1.初始化/hellor := gin.Default()//初始化路由r.GET("/hello",sayhello)r.Run() //默认8080端口 ":9090" 自定义端口//sayhello方法实现func sayhello(c *gin.Context){ //以下是返回json形式 c.JSON(200,gin.H{ "message":"map数组而已", "message2":"blunt", })}2.匹配模式//原创 2021-04-07 08:00:48 · 579 阅读 · 0 评论 -
Go语言:玩玩迭代器
Iterator Pattern(迭代模式)这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。迭代器模式属于行为型模式参考来源与 《图解设计模式》代码结构场景建立一个书架 放入书籍使用书架迭代器遍历书籍代码Iterator建立迭代接口package codeInHere//建立迭代接口type Iterator interface { HasNext() bool // Next() interface{}}aggregate建立一个用于遍历集合原创 2021-03-20 18:32:39 · 379 阅读 · 0 评论 -
Go语言:万物皆接口
接口在Go语言中接口是一种类型,只要实现了这个接口方法的就属于这个类型在JAVA中定义一个鸭子接口那什么是鸭子?鸭子是会嘎嘎嘎叫的鸭子可以在水里游等等。。。那反过来如果不能嘎嘎嘎叫,不能在水里游就不是鸭子在go语言中没有那么多要求只要你长得鸭子那就你可以实现我这个接口不管这个鸭子会不会叫或者是玩具鸭子只要实现了我这个接口方法就是个鸭子定义一个接口...原创 2020-03-28 14:21:03 · 502 阅读 · 0 评论 -
Go语言:聊聊结构体
GO结构体go语言中是没有类的但是go语言中可以使用结构体来定义类似与java类的结构并借此来实现面向对象结构体的定义go语言中定义结构体是使用 type 和 structtype person struct { name string age int}person 就是一个结构体 有着name和age两个属性结构体的声明 var p = person{}...原创 2020-03-28 11:07:48 · 499 阅读 · 0 评论 -
Go语言学习:聊聊Go语言中的defer
Defergo语言中 defer 会将跟随在它后面的语句延迟处理一般用来关闭链接 关闭流单个defer fmt.Println("A") defer fmt.Println("B") fmt.Println("C") //输出 A C B因为defer的关系 ,本来应该输出B的 ,被延迟到了最后多个defer fmt.Println("A") defer fmt...原创 2020-03-24 09:12:39 · 433 阅读 · 2 评论 -
Go语言学习:函数
函数定义go语言中通过关键字 func 来定义函数func 函数名(参数)返回指{函数体}无参无返回值func f1(){ fmt.Println("hello go")}有参无返回值func f2(x int){ fmt.Println("hello go")}多个同类型参数可以省略上一个或者多个func f3( x, y int,z bool){ f...原创 2020-03-23 15:45:15 · 184 阅读 · 0 评论 -
Go语言学习: new和make
new 和 make 都是用来分配内存的 var a int fmt.Println(a) var b string b = "927" fmt.Println(b) //输出 //0 //927使用基本类型系统会默认分配内存 基本类型在创建的时候就有了默认值 var a *string *a = "927" fmt.Println(a) var m ma...原创 2020-03-23 11:40:43 · 184 阅读 · 0 评论 -
GO语言学习:指针
指针go语言中的指针还是比较好理解的操作符号是 : & *& 是取地址*指针类型取地址: var str = "hello" p := &str fmt.Println(p) //输出 //0xc0000881e0实现的操作就是 把变量str的内存地址 放入到p变量中指针取值 var str = "hello" p := &...原创 2020-03-23 11:14:48 · 219 阅读 · 0 评论 -
GO语言学习:MAP
MAP的定义map是一个无序的 key-vlaue 的集合map的定义为: map[key类型]value类型map类型的变量需要使用make()函数来分配内存使用make创建: make(map[key]value,cap(初始容量) )map的长度也是可变的 var n map[string]int n = make(map[string]int ,20) var m ...原创 2020-03-23 10:36:42 · 197 阅读 · 0 评论 -
GO学习:GO语言的关键字
GO语言的关键字: break default func interface select case defer go map struct chan else goto package switch...原创 2020-03-21 14:30:34 · 910 阅读 · 0 评论 -
寻找最长不含有重复字符串的长度
寻找最长不含有重复字符串的长度(Go语言实现)例: “abcabcabc” 最大长度为3 abc,解题思路: 首先我们需要一个start来记录当前最长不包含字串的开始坐标,假设当从左往右遍历到X的位置时, 0,1,2,3,4,5,6,7此时我们要保证从start的坐标到X的坐标包不包含X,也就是 从start 到 X-1的坐标内有没有包含X,所以我们需要一个MAP来在我们遍历的时候...原创 2019-03-02 16:08:21 · 476 阅读 · 0 评论