
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 · 656 阅读 · 0 评论 -
GO语言:转字符串
strconv.Itoa(120) //int 转字符串原创 2021-04-10 14:24:17 · 262 阅读 · 0 评论 -
Go语言:获取随机数
r := rand.New(rand.NewSource(time.Now().UnixNano))//使用当前时间戳 生成真正的随机数字 r.Intn(2) //取二以下的正数 0,1原创 2021-04-10 14:22:32 · 1159 阅读 · 1 评论 -
GO语言:gin框架实列
Gin框架问题 1.初始化/hello r := 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 · 602 阅读 · 0 评论 -
Go语言:玩玩迭代器
Iterator Pattern(迭代模式) 这种模式用于顺序访问集合对象的元素,不需要知道集合对象的底层表示。 迭代器模式属于行为型模式 参考来源与 《图解设计模式》 代码结构 场景 建立一个书架 放入书籍 使用书架迭代器遍历书籍 代码 Iterator 建立迭代接口 package codeInHere //建立迭代接口 type Iterator interface { HasNext() bool // Next() interface{} } aggregate 建立一个用于遍历集合原创 2021-03-20 18:32:39 · 393 阅读 · 0 评论 -
Go语言:万物皆接口
接口 在Go语言中接口是一种类型,只要实现了这个接口方法的 就属于这个类型 在JAVA中 定义一个鸭子接口 那什么是鸭子? 鸭子是会嘎嘎嘎叫的 鸭子可以在水里游 等等。。。 那反过来 如果不能嘎嘎嘎叫,不能在水里游就不是鸭子 在go语言中没有那么多要求 只要你长得鸭子 那就你可以实现我这个接口 不管这个鸭子会不会叫 或者是玩具鸭子 只要实现了我这个接口方法 就是个鸭子 定义一个接口 ...原创 2020-03-28 14:21:03 · 510 阅读 · 0 评论 -
Go语言:聊聊结构体
GO结构体 go语言中是没有类的 但是go语言中可以使用结构体来定义类似与java类的结构 并借此来实现面向对象 结构体的定义 go语言中定义结构体是使用 type 和 struct type person struct { name string age int } person 就是一个结构体 有着name和age两个属性 结构体的声明 var p = person{}...原创 2020-03-28 11:07:48 · 517 阅读 · 0 评论 -
Go语言学习:聊聊Go语言中的defer
Defer go语言中 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 · 452 阅读 · 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 · 196 阅读 · 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 · 198 阅读 · 0 评论 -
GO语言学习:指针
指针 go语言中的指针还是比较好理解的 操作符号是 : & * & 是取地址 *指针类型 取地址: var str = "hello" p := &str fmt.Println(p) //输出 //0xc0000881e0 实现的操作就是 把变量str的内存地址 放入到p变量中 指针取值 var str = "hello" p := &...原创 2020-03-23 11:14:48 · 230 阅读 · 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 · 212 阅读 · 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 · 920 阅读 · 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 · 484 阅读 · 0 评论