Go-004 常量

1 概述 一旦定义,其值不可更改的量,称之为常量。也是常量标识符和常量值。 常量用于存储简单数据类型:数值,字符串。 2 定义 语法:const c1 string = “GoLang” 语法上,支持批量定义,支持类型推导: const ( c1 int = 42 c2 = 42 c3 = "golang" ) fmt.Println(c1,c2,c3) 注意: 批量定义,若 后边的只写常量名,则代表和上一个一致 const ( c1 = 42 c2 c3 ) fmt.Println(c1,c2...阅读全文

简书 2020-02-22 15:32:50 LikePlayAPiano

leetcode_213

Golang: 思路:这题我个人感觉要复杂一些,难度在于首尾相连,并且,你需要考虑的更全面一些。当然,这题做完的时间复杂度100%,空间47%,但我不太想优化了。简单来说,有房子[1...n],通过打家劫舍1得出的最大值,我们需要做出判断:如果我们没抢n,那么这个最大值没有问题,如果我们抢了n,那么就需要去看下我们抢没抢1,如果也没抢1,那么没问题,但如果抢1了,那么这个最大值就需要修改了,为max([2....n],[1...n-1])。 代码如下: func rob(nums []int) ...阅读全文

简书 2020-02-22 15:32:50 淳属虚构

leetcode_343

Golang: 思路:这题以DP为思路,不算很难,以10为例子,我们知道结果是10=3+3+4这么拆分,如果我们假设res[i]表示i能拆分的正整数的最大乘积,那么如何计算res[10]呢?通过一个for循环,res[n]=res[i]*res[n-i],看看最大的res[n],即可。res[10]=res[3]*res[3]*res[4],实际上,也就是res[10]=res[3]*res[7] 代码如下: func integerBreak(n int) int { if n<=2 { re...阅读全文

简书 2020-02-22 15:32:49 淳属虚构

leetcode_338

Golang: 思路:这题以DP为思路,不算很难,以9为例,arr[9]=arr[8]+arr[9-8],arr[23]=arr[16]+arr[23-16] 代码如下: func countBits(num int) []int { if num==0 { return []int{0} } if num==1 { return []int{0,1} } arr:=make([]int,num+1) arr[0],arr[1],arr[2]=0,1,1 i:=2 for arr[num]==0...阅读全文

简书 2020-02-22 15:32:49 淳属虚构

从技术专家走向项目经理

1 项目经理的来源 就目前的IT企业而言,项目经理的来源大致可以分为2处,其一是从程序员、架构师转型的,其二是从业务、实施转型的。由于大家各自的技术底蕴不同,观念不同,因此也形成不同模式的项目经理。分解得简单一点,称之为“技术型项目经理”和“管理型项目经理”。 2 技术专家与项目经理的区别 角色:技术专家关注技术成果,负责技术攻坚;项目经理为项目的结果负责,总揽项目成败。 解决的问题:技术专家关注技术问题;项目经理除关注技术问题外,还需要关注项目范围、进度、成本、质量、资源、风险等问题 能力要求...阅读全文

简书 2020-02-22 15:32:48 陌若尘_c167

如何优雅的使用GDB调试Go

今天聊聊如何优雅的使用GDB调试Go程序。GDB有啥用?想了解代码底层的话,它是一大利器,更别说定位问题啥的。具体骚操作见曹大的使用 debugger 学习 golang但GDB从安装到可用,可能有一大堆问题要解决(尤其在Mac上),我们怎么能优雅的使用它,避免陷入问题中,是本文的重点。(涉及Docker和Mac两个平台上运行)先来看比较推荐的Docker方式Docker篇:3步即可调试docker加持的话,非常方便,随用随起先上效果:戳 gdb-debug-go-in-docker 可下载命令...阅读全文

简书 2020-02-22 15:32:47 Java天天

Go 模块--开始使用 Go Modules

Go的1.11和1.12版本包括对模块--新的Go依赖管理系统的初步支持,使依赖版本信息变得明确且更易于管理。这篇博客文章介绍了开始使用模块所需的基本操作。模块是存储在根目录有一个 go.mod文件的文件树中的 Go 包(package)的集合。go.mod文件定义了模块的module path(也是模块根目录的导入路径)以及模块依赖的其他模块的要求,满足了依赖要求模块才能被成功构建起来。每个依赖模块的要求被写为一个模块路径和相应的模块版本。下面展示了一个简单的go.mod文件 module e...阅读全文

简书 2020-02-22 15:32:45 Java天天

golang 的 gin 框架开发热重启探索

需求来源 作为一个新萌的假后端,开发接口时候经常需要修改调试重启素质三连。但是频繁修改和频繁的重启会导致非常麻烦。作为一个老前端,自然是厌恶手动重启这种劳心费力的操作的。于是就像找一个在开发环境快速热重启的方案。 工具 经过一番探索,找到以下开源项目: https://github.com/cosmtrek/air 项目中使用 按照该项目文档说法直接一波操作。 安装 go get -u github.com/cosmtrek/air 创建配置文件 在项目根目录创建一个名为 .air.conf 的...阅读全文

Segmentfault 2020-02-26 09:32:33 源泉

mysql查询过来的数据如何反射到结构体字段,具体实现方法的实现挺好用的

本文讲解的实例是从mysql查询过来的数据如何反射到结构体字段,具体实现方法如下代码; ** 文章转自go语言中文文档 [http://www.topgoer.com](http://www.topgoer.com/?from=studygolang "文章转自go语言中文文档http://www.topgoer.com") ** 代码目录: 1129 -common --common.go //是封装的代码 -main.go //是测试代码 代码...阅读全文

Go语言中文网 2020-02-22 10:59:50 lu569368

关于Golang过滤敏感信息的正确姿势

今天正好看到一篇关于敏感信息过滤的文章,这算做一个interface实际应用的一些举例和应用。 例子中介绍了一种比较常见的使用场景:使用JSON保存数据时的对诸如用户密码等信息进行保护时候应该做的事情。作者以使用JSON格式保存用户账户和密码为例,讲解了使用json.Unmarshaler接口类型过滤敏感信息。 比如,对于保存敏感数据的结构体: 1234567891011type Credentials struct { Email string `json:”email”` Password ...阅读全文

ipfans's Blog 2018-06-06 00:00 ipfans's Blog

编写测试友好的 Golang 代码

目前我们有大量的应用采用了 Golang 程序进行构建,但是在执行研发流程里我们会发现一些来自于静态编译程序的不便:相对于我们之前使用的 Python 语言程序而言,我们无法在程序功能的单元测试里大量的使用 Mock 方式来进行高效测试。 而这些东西往往可以在开发人员编写单元测试用例时有效的节省时间和一些额外的环境准备成本。因此,这也给我们的程序的单元覆盖率带来了很多麻烦的地方:一些依赖于额外验证和表现的情况或者小几率出现的情况需要复杂的模拟步骤,对开发进度和效率带来了一些额外的影响。如何编写一...阅读全文

ipfans's Blog 2016-04-18 00:00 ipfans's Blog

Tips:如何优雅的使用GDB调试Go

Tips: all for hands-free. Tips 系列:记录日常解决问题、解放双手的一些小技巧。 目的只有一个:不被重复的琐事麻痹,能偷懒的绝不手软。 今天聊聊如何优雅的使用GDB调试Go程序。 GDB有啥用? 想了解代码底层的话,它是一大利器,更别说定位问题啥的。 具体骚操作见曹大的使用 debugger 学习 golang 但GDB从安装到可用,可能有一大堆问题要解决(尤其在Mac上),我们怎么能优雅的使用它,避免陷入问题中,是本文的重点。 (涉及Docker和Mac两个平台上运...阅读全文

Segmentfault 2020-02-25 14:32:41 newbmiao

Golang 任务池

# Task Pool [GitHub地址](https://github.com/overtalk/task) Task Pool 是一个易于使用且高度可配置的 golang类库,专门用于任务的管理&执行,支持自定义次数的重发。 ## 功能特点 - 线程安全 - task pool 内所有的方法以及暴露的接口都是线程安全的 - 异步发送 - 调用 PushTask 方法后回立即返回,任务将会被传递到io线程中异步发送,不阻塞用户操作。 - 失败重试 - 用户可以通过设置...阅读全文

Go语言中文网 2020-02-21 16:07:59 qinhan_shu

图解kubernetes Pod生命周期事件生成器

PLEG(PodLifecycleEventGenerator)主要是用于周期性检测Pod的运行状态,从而对比Pod前后状态生成事件从而触发kubelet进行Pod容器状态的校证,让我们一起来初探下其内部实现机制 1. 图解设计 1.1 Pod事件生成 Pod事件生成主要是根据对应Pod前后的状态对比来实现,首先通过runtime来获取当前节点的所有Pod的列表,并将对应的状态进行保存,这样在下一个轮训周期就可以通过前后状态的对比去发现状态发生改变的Pod的容器,并且产生对应的事件 1.2 事件...阅读全文

掘金 2020年02月21日 8小时_2020

用faas实现issueops

本文教你如何白嫖实现足够自动的开发测试交付,面向读者最好满足以下条件: 足够穷 足够懒 issueops? 听过chatops,gitops还没听过issueops,顾名思义issueops就是在讨论issue的时候把ops的事给干了,讨论问题就把问题给解决,美哉。 kubernetes项目issue或者PR中会经常看到这样的东西: image.png 类似/kind feature 这样的指令是给机器人看的,这里就要介绍一位非常勤奋的小伙伴了: ci-robot.png 他叫k8s-ci-ro...阅读全文

简书 2020-02-21 14:33:00 sealyun

leetcode120

Golang: 思路:这题是基础DP,想一想就出来了,但是槽点满满,题目对于相邻这个定义的解释太扯淡了。搬我的题解过来吧。 初始: [2], [3,4], [6,5,7] 第一轮过后:3+2=5,4+2=6 [2], [5,6], [6,5,7] 第二轮过后:6+5=11,[5+5=10,5+6=11,取小值10],7+6=13 [2], [5,6], [11,10,13] 代码如下: func minimumTotal(triangle [][]int) int { if len(triang...阅读全文

简书 2020-02-21 14:32:50 淳属虚构

leetcode_746

Golang: 思路:简单DP,保持cost[0]、cost[1]不变,从i=2开始,状态转移方程是:cost[i]=min(cost[i-2],cost[i-1])+cost[i] 代码如下: func minCostClimbingStairs(cost []int) int { for i := 2; i < len(cost); i++ { cost[i] = min(cost[i-2], cost[i-1]) + cost[i] } return min(cost[len(cost)-...阅读全文

简书 2020-02-21 14:32:49 淳属虚构

[Golang软件推荐] RSA公私钥加解密(解决Golang私钥加密公钥解密问题)

安全是软件开始中很重要的一个环节,在金融场景以及设计资产的场景下更是如此,在加密算法中主要使用较多加密方式分别是对称加密和非对称加密,对称加密中的代表是AES,DES,3DES等,非对称加密中使用比较多的是RSA,ECC等,最近火热的比特币中就使用ECC椭圆曲线算法,本篇文章主要是笔者在使用Golang在使用RSA中使用私钥加密公钥解密中遇到的问题,以及寻找的解决方案进行阐述,希望可以帮助到大家! 附上: 喵了个咪的博客:w-blog.cn gorsa-Github地址:https://gith...阅读全文

简书 2020-02-21 14:32:48 文振熙

[Golang软件推荐] Golang通用连接池

连接池在编程中并不少见,链接数据库,redis等操作都需要连接池,否则就会出现并发问题,如果每次操作都建立一条新的链接将会大大消耗资源,笔者也是在使用thrift-Clinet链接Service端使用的时候出现了并发问题,然后找到了一个通用的连接池的库在这里分享给大家. 附上: 喵了个咪的博客:w-blog.cn go-commons-pool-Github地址:github.com/jolestar/go-commons-pool 1.连接池 在使用之前我们需要先了解清楚连接池的概念,总结下来...阅读全文

简书 2020-02-21 14:32:48 文振熙