源码读起来,Go源码共读计划

由来随着云原生的越来越成熟,Go语言也顺其自然的被各大公司采用。相信越来越多的人,或多或少的都了解或接触都一点点的GO。同时,也有越多越多的应用,从其他的语言转到了Go语言的怀抱。Go语法及其的精炼。如果,你是有一定编程经验,那么上手Go,并开始用Go做一个简单的应用,可能都不用一周的时间。(像作者这么菜的人,当年用一天的时间被Go深深的吸引,然后又用一天的时间看完了官方 tourist,第三天就开始用Go写项目了)可能很多人像我一样,读一遍语法,就直接开始了。这也是有编程经验的人快速上手一门新...阅读全文

51CTO博客 2021-02-23 11:56:59 mb601ce0d29b15f

now-go时间百宝箱

golang不像C#,Java这种高级语言,有丰富的语法糖供开发者很方便的调用。所以这便催生出很多的开源组件,通过使用这些第三方组件能够帮助我们在开发过程中少踩很多的坑。时间处理是所有语言都要面对的一个问题,parse根据字符串转为date类型,tostring()将date类型转为定制化的字符串。在实际使用过程中,parse的使用有一种不是很舒服的方法。上源码time1, _ := time.Parse("2006-01-02", "2020-02-22") fmt.Println(time1...阅读全文

51CTO博客 2021-02-23 11:25:09 mb601ce0d29b15f

[GO]mysql中支持表情emoji字符的几个修改点

使mysql表支持存储表情字符需要注意以下几个字符编码的处理: 数据库编码可以是 utf8mb4表的编码是 utf8mb4表中内容字段是 utf8mb4 连接数据库时是 utf8mb4例如go连接mysql : 这里的dsn有字符指定sql.Open("mysql", db.Dsn) 插入语句前执行 set names utf8mb4 上次我修改后 , 执行插入语句中带有emoji 总是报错 ,仔细检查后发现是字段里单独的字符编码还是utf8 , 所以会报错仔细把前面所有都检查了 , 就不会有问...阅读全文

51CTO博客 2021-02-23 11:22:39 mb601ce0d29b15f

go-carbon 1.3.3 版本发布,新增获取星座方法和判断是否是某个星座方法

carbon 是一个轻量级、语义化、对开发者友好的Golang时间处理库,支持链式调用、农历和gorm、xorm等主流orm如果您觉得不错,请给个star吧github:github.com/golang-module/carbongitee:gitee.com/go-package/carbon更新日志新增 Constellation()方法获取星座,支持多语言新增 IsXXX() 系列方法判断是否是某个星座新增 ToMonthString() 方法输出完整月份字符串,支持多语言新增 ToSh...阅读全文

Segmentfault 2021-02-26 21:32:32 够过瘾

手撸golang 基本数据结构与算法 插入排序

缘起 最近阅读<<我的第一本算法书>>(【日】石田保辉;宫崎修一) 本系列笔记拟采用golang练习之 插入排序 插入排序是一种从序列左端开始依次对数据进行排序的算法。 在排序过程中,左侧的数据陆续归位, 而右侧留下的就是还未被排序的数据。 插入排序的思路就是从右侧的未排序区域内取出一个数据, 然后将它插入到已排序区域内合适的位置上。 时间复杂度和冒泡排序的一样,都为O(n^2)。 摘自 <<我的第一本算法书>> 【日】石田保辉;宫崎修一 基本流程 给定待排序数组data[N] 如果N <= 1...阅读全文

简书 2021-02-23 10:32:43 老罗话编程

golang 获取文件名称、后缀

golang 获取文件名称、后缀 通过文件路径,获取文件名称,后缀 func main(){ var filePath="attachment/file/filename.txt" //获取文件名称带后缀 fileNameWithSuffix:=path.Base(filePath) //获取文件的后缀(文件类型) fileType:=path.Ext(fileNameWithSuffix) //获取文件名称(不带后缀) fileNameOnly:=strings.TrimSuffix(file...阅读全文

简书 2021-02-23 10:32:42 我是不会赢的

RecyclerView Adapter 的问题

前言 因为之前一直写 TV 相关的业务,而 TV 业务多半为列表页展示必然使用 RecyclerView,当然我们使用的 RecyclerView 经过了一定的改造,处理了焦点和各种奇怪的业务需求,目前写的并不好,后续打算有时间整理重构并梦想开源(因为一开始用了一个开源的 TVRecyclerView,问题挺多的)。第一步,就是想重构下 Adapter,结果没想到出师不利。 这里的问题,并不是指 Android 相关的问题,更不是 Adapter 和 RecyclerView 的代码问题,而是泛...阅读全文

简书 2021-02-23 10:32:42 北邙山之光

手撸golang 基本数据结构与算法 插入排序

缘起最近阅读<<我的第一本算法书>>(【日】石田保辉;宫崎修一)本系列笔记拟采用golang练习之插入排序插入排序是一种从序列左端开始依次对数据进行排序的算法。 在排序过程中,左侧的数据陆续归位, 而右侧留下的就是还未被排序的数据。 插入排序的思路就是从右侧的未排序区域内取出一个数据, 然后将它插入到已排序区域内合适的位置上。 时间复杂度和冒泡排序的一样,都为O(n^2)。 摘自 <<我的第一本算法书>> 【日】石田保辉;宫崎修一基本流程给定待排序数组data[N]如果N <= 1, 直接返回视...阅读全文

Segmentfault 2021-02-26 09:32:33 ioly

Go 去找个对象吧

前言我的读者中应该大部分都是 Java 从业者,不知道写 Java 这些年是否真的有找到对象?没找到也没关系,总不能在一棵树上吊死,我们也可以来 Go 这边看看,说不定会有新发现。开个玩笑,本文会以一个 Javaer 的角度来聊聊 Go 语言中的面向对象。<!--more-->OOP面向对象这一词来源于Object Oriented Programming,也就是大家常说的 OOP。对于 Go 是否为面向对象的编程语言,这点也是讨论已久;不过我们可以先看看官方的说法:其他的我们暂且不看,Yes ...阅读全文

Segmentfault 2021-02-26 15:32:34 crossoverJie

Golang Recover的一个小坑

问题及场景业务当中有需要分发http.request.body的场景。比如微信回调消息只能指定一个地址,所以期望可以复制一份消息发给其他服务。由服务B和接收微信回调的服务A一起处理微信回调信息。本文将详细介绍golang复用http.request.body的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧解决思路最开始考虑的是直接转发http.request。使用ReverseProxy直接将http.request由服务A转发给服务B。但是微信涉及到验证等问题,完全调...阅读全文

简书 2021-02-23 06:32:38 也许会了

剑指 Offer 17. 打印从1到最大的n位数

剑指 Offer 17. 打印从1到最大的n位数 题目描述: 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。 示例 1: 输入: n = 1 输出: [1,2,3,4,5,6,7,8,9] 解题思路: 先求出最大值,然后放入数组中 Java 版: class Solution { public int[] printNumbers(int n) { int sum=10; for(int i=1;i<n;i++){...阅读全文

简书 2021-02-23 06:32:38 黄sir_

Go Socket

Socket 计算机计算时需输入和输出,输入需计算的条件,输出需计算的结果,输入和输出可抽象为I/O(Input/Output)。UNIX的设计哲学之一是”一切皆文件“,因此UNIX处理I/O是通过对文件的抽象来实现的。由于不同的应用程序进程之间也存在输入输出(通信),因此这个通信也是通过文件的抽象文件描述符(FD, File Descriptor)来实现的。 Socket套接字是操作系统提供的一种进程间通信(IPC,Inter-Process Communication)的方式。IPC是指多个...阅读全文

简书 2021-02-23 06:32:38 JunChow520

Kotlin Coroutines VS Goroutines

前言 最近一直在看 Kotlin 协程,因为以前也写过 Golang,所以试着去对比了一下,发现了很多好玩的事情。 一个 Kotlin 的小例子 试问下面一段代码,执行结果是什么呢? fun main() = runBlocking { //创建自定义线程池 val coroutineDispatcher = Executors.newFixedThreadPool(1).asCoroutineDispatcher() val name = Thread.currentThread().name...阅读全文

简书 2021-02-23 06:32:37 北邙山之光

2021-02-22:一个象棋的棋盘,然后把整个棋盘放入第一象限,棋盘的最左下角是(0,0)位置,那么整个棋盘就是横坐标上9条线、纵坐标上10条线的区域。给你三个 参数 x,y,k。返回“马”从...

2021-02-22:一个象棋的棋盘,然后把整个棋盘放入第一象限,棋盘的最左下角是(0,0)位置,那么整个棋盘就是横坐标上9条线、纵坐标上10条线的区域。给你三个 参数 x,y,k。返回“马”从(0,0)位置出发,必须走k步。最后落在(x,y)上的方法数有多少种? 福哥答案2021-02-22: 自然智慧即可。 1.递归。有代码。 2.记忆化搜索。有代码。 3.动态规划。dp是三维数组。棋盘是二维数组,走k步,需要k+1个棋盘。有代码。 4.动态规划,空间压缩。只有相邻棋盘才有依赖,所以只需要用...阅读全文

简书 2021-02-23 06:32:36 福大大架构师每日一题

embed小技巧-动态文件更新

go1.16 embed可以将文件嵌入到编译后的二进制中,以后发布一个web程序可以只提供一个二进制程序,不需要其他文件,同时避免重复文件io读取。但是在开发时,使用embed后如果修改前端文件那么需要重启GO程序,重新生成embed数据,导致开发过程不方便。提供一个embed支持动态文件的小技巧,使用http.Dir和embed.FS混合组合一个新的http.FileSystem,如果当前目录存在静态文件,那么使用http.Dir返回静态文件内容,否则使用embed.FS编译的内容,这样既可以...阅读全文

Segmentfault 2021-02-25 11:32:33 eudore

go modules 使用本地库、公开库和私有库

文章目录 一、简介二、引用本地目录二、引用合规库三、引用私有不合规库3.1、配置仓库访问权限3.2、本地配置“访问令牌(Access Token)”参数3.3、配置使用git方式拉取代码 五、最常见的私有不合规库参考资料及附录 一、简介 公司项目使用 go module 开发的过程中会有一些自己的库要引用,这些库用gitlab管理,需要研究引用gitlab库的方法,下面是研究过程中的一些经验。 介绍几种引用方案: 1、引用本地目录2、引用合规地址库3、引用私有不合规库4、最常规(恶心) 的私有不...阅读全文

CSDN博客 2020-07-04 08:41:36 qingchuwudi