go设计模式之状态模式浅谈

### 概念 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类 ### 何时使用 当一个任务,存在大量与状态有关的条件语句,并且每种条件下,需要执行不同的逻辑时 ### 状态模式的组成 ``` Status:状态 用于抽象状态行为类的行为 Context:状态环境 维护Status状态的切换,实现不同状态下,对外展示不同行为 StatusObj:状态行为类 实现Status接口的行为 ``` 下面以工作日,和休息日两种不同的状态下,Do方法产生不同行...阅读全文

Go语言中文网 2021-04-28 17:43:25 go_hiro

go设计模式之单例模式浅谈

### 概念 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 ### 实现 单例实现有两种方式,分别是饿汉模式和懒汉模式,下面分别说明: #### 1.饿汉模式 ```go type single struct {} var instance *single instance = &single{} func GetSingle() *single { return instance } ``` 饿汉模式存在问题,instance压根没使用都会自动创...阅读全文

Go语言中文网 2021-04-28 17:42:06 go_hiro

golang 踩坑时间Parse转换后加8小时

今天写代码的时候从前台拿到数据后加到数据库发现存入的时间都加了八小时 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20210409110756414.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTE2MTYzNg==,size_16,color_FFFFFF,t_70)...阅读全文

Go语言中文网 2021-04-28 13:53:13 starFullSky

Golang变量的数据类型

1.基本数据类型 1.1 数值型 1.1.1 整数类型 int、int8、int16、int32 uint、uint8、uint16、uint32、uint64、byte 1.1.2 浮点类型 float32、float64 1.2字符型 没有专门的字符型,使用byte,来保存单个字母字符 1.3布尔型 bool 1.4字符串 string2.派生/复杂数据类型 2.1 指针 pointer 2.2 数组 2.3 结构体 struct 2.4 管道 channel 2.5 函数 2.6切片 sl...阅读全文

51CTO博客 2021-04-28 12:41:40 mob604756fbd94e

Golang 浮点类型、字符类型

一、浮点类型分类 浮点类型的存储分未三部分,符号位+指数位+尾数位,在存储过程中,精度会有损失。 1.单精度 float32,占用4字节。 2.双精度 float64 ,占用8字节。 默认情况下Golang式float64。二、字符类型 Golang中没有专门的字符类型,如果要存储单个字符(字母),一般使用byte来保存。 字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串式由单个字节连接起来的。当我们直接输出byte值,就是输出了对应的字符的码值(ASCII码)。func main(...阅读全文

51CTO博客 2021-04-28 12:33:22 mob604756fbd94e

【完整版53章】Go+Python双语言混合开发-盯紧技术先机抓紧高薪机遇

点击下载——【完整版53章】Go+Python双语言混合开发-盯紧技术先机抓紧高薪机遇提取码:rsl7 点击下载——【完整版53章】Go+Python双语言混合开发-盯紧技术先机抓紧高薪机遇密码:gf4uhpGo+Python双语言混合开发-盯紧技术先机抓紧高薪机遇,完整版53章,2021年新课。60小时加强训练,0基础入门Go,自研微服务框架、打造电商系统。Go+Python自研一个“微服务”框架:从0开始围绕grpc开发微服务Go+Python混合开发微服务框架,让你成为具备双语言后端能力的...阅读全文

51CTO博客 2021-04-28 12:56:37 喜欢运动m

[Go] Go语言实战-基于websocket浏览器通知的实现

当我们使用了websocket技术实现了实时的推送访客来到消息,但是我们只能随时看着页面不离开才能知道有访客来到现在增加浏览器的通知消息,就可以只要打开着界面,不用一直盯着,干别的事去就可以了,有新消息会从右下角弹出来测试地址如下,当有访客点击咨询按钮时,客服后台会弹出提示:https://gofly.sopans.com/index 首先要明确一点,现在的通知只能在https的环境下使用 , 非https , 不能使用浏览器通知,Notification.permission返回的是禁止 no...阅读全文

51CTO博客 2021-04-27 20:39:18 mob604756fb8908

[Go] GO语言实战-实现标题闪烁

在实现客服系统的过程中,需要有新消息的时候标题栏闪烁提示因为聊天框是被iframe框进去的页面,所以在聊天框中收到websocket消息以后要把消息发送给父集页面,在父页面中闪烁标题 测试页面地址:https://gofly.sopans.com/ 子页面发送到父页面的实现是,在父页面增加消息监听,子页面发送消息子页面:window.parent.postMessage(redata);父页面收到消息调用函数,标题不停切换window.addEventListener('message',fun...阅读全文

51CTO博客 2021-04-27 20:38:31 mob604756fb8908

[Go] GO语言实战-为博客园增加gofly在线客服功能

gofly最近准备完善对外的js引用功能,类似很多知名客服系统那样直接引入js就可以使用,现在只是简单的实现了下代码在github,可以在页面上看到, gofly地址在这里 https://gofly.sopans.com/ , 开发和部署方式在github的readme.md 首先要申请js权限 因为博客园有引用jquery, 所以就不需要引入了,自己部署好以后,直接把代码加入到页面页脚代码里就行 <script src="https://cdn.bootcdn.net/ajax/libs/l...阅读全文

51CTO博客 2021-04-27 20:38:06 mob604756fb8908

Go语言开发环境搭建

一、Windows下安装安装Go开发包官网下载Go语言开发包,安装方法就是next,除了安装位置选择安装目录选定一个好记的。尽量不要放在C盘中,除非你盘空间很大,完全够用。此路径需要自己记住,需要时可以很容易的找到。安装完成后输入go version查看go版本号也可以使用go 来测试,只要显示一大堆东西就是安装成功,这是野路子方法,不推荐使用。GOPATH在自己电脑上新建一个目录,例如E:\Go(存放我编写的Go语言代码)在环境变量里,新建一项:GOPATH:D:\Go在D:\Go下新建三个文...阅读全文

51CTO博客 2021-04-27 20:36:16 mob604756fb8908

Go语言从入门到实战,带你拿下Golang的高效编程法

独特的学习方法:着重对比 Go 语言语法和其他其他编程语言的不同,带你快速入门 Go 语言,高效掌握 Go 语言的编程方法。学以致用,注重实战:带你对 Go 语言在开发中的常见问题进行拆解分析,比如并发编程模式,常见并发任务,高可用服务设计,性能调优等难题,让你可以从入门走向实战。适合已经掌握如 C、C++、Java、Python、PHP 等一门或多门编程语言的学员。 蔡超目前在 Mobvista 担任技术副总裁兼首席架构师,曾在亚马逊中国、惠普等担任首席软件架构师。Go语言从入门到实战,前往 ...阅读全文

51CTO博客 2021-04-27 20:34:58 mob604756fb8908

go语言的31个坑

目录go语言的31个坑golang中分为值类型和引用类型1.左大括号不能单独放一行 {2.不能使用简短声明来设置字段的值3.不小心覆盖了变量4.显式类型的变量无法使用 nil 来初始化5.直接使用值为 nil 的 slice、map6.map 容量7.string 类型的变量值不能为 nil8.Array 类型的值作为函数参数9.访问 map 中不存在的 key10.string 类型的值是常量,不可更改,可以使用rune来转换11.string 与索引操作符12.字符串并不都是 UTF8 文本...阅读全文

51CTO博客 2021-04-27 20:24:43 mob604756fb8908

go语言简介

go语言适用什么场景? go语言主要作为服务器端开发,适用于开发“大型软件”,其开发周期长,支持云计算,融合了传统编译型语言的高效性和脚本语言的易用性和富于表达性。 适用场景:处理日志数据打包虚拟机处理文件系统分布式系统数据库代理等。go语言的特性:静态强类型编译型并发性具备垃圾回收功能异步go语言的优势轻量级执行性能好,可借鉴批量请求访问超时问题开发效率高,编码规范统一,上手快。阅读全文

51CTO博客 2021-04-27 20:23:48 mob604756fb8908

[系列] - 使用 go modules 包管理工具(一)

概述我想实现一个开箱即用的 API 框架的轮子,这个轮子是基于 Gin 基础上开发的。为什么是开箱即用,它会集成哪些功能?以上功能点,都是常用的,后期可能还会增加。废话不多说,咱们开始吧。创建一个项目,咱们首先要考虑一个依赖包的管理工具。常见的包管理有,dep、go vendor、glide、go modules 等。最开始,使用过 dep,当时被朋友 diss 了,推荐我使用 go modules 。现在来说一下 go modules ,这个是随着 Go 1.11 的发布和我们见面的,这是官方...阅读全文

51CTO博客 2021-04-27 18:28:50 wx6087c7391d3cd

[系列] - go-gin-api 路由中间件 - Jaeger 链路追踪(五)

概述首先同步下项目概况:上篇文章分享了,路由中间件 - 捕获异常,这篇文章咱们分享:路由中间件 - Jaeger 链路追踪。啥是链路追踪?我理解链路追踪其实是为微服务架构提供服务的,当一个请求中,请求了多个服务单元,如果请求出现了错误或异常,很难去定位是哪个服务出了问题,这时就需要链路追踪。咱们先看一张图:这张图的调用链还比较清晰,咱们想象一下,随着服务的越来越多,服务与服务之间调用关系也越来越多,可能就会发展成下图的情况。这调用关系真的是... 看到这,我的内心是崩溃的。那么问题来了,这种情况...阅读全文

51CTO博客 2021-04-27 17:10:32 wx6087c7391d3cd