【代码篇】从零开始一步步搭建自己的golang框架(六)

基本上这个基础框架拿到手之后就可以做一些自己想要做的改动了,比如你想添加个队列的插件,你可以在相应的目录里面进行修改了,但我想让它更通用一些,本篇文章将会启动一个websocket服务,并且把配置文件改成yaml格式。 修改配置 之所以想要把配置从json改为yaml,有以下几点原因: json主要是用于信息传输,而yaml更适合作为配置文件的格式来使用,两者的用途不一样; yaml格式看起来比json更加清晰; 在yaml文件中可以添加注释,让配置更加易懂。 在此,解析yaml文件用的包是"g...阅读全文

51CTO博客 2020-02-15 10:58:40 wx5e1abbbb0a5e5

LeetCode - 字符串相乘 - Golang

题目:给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 num1 和 num2 的长度小于110。 num1和 num2只包含数字 0-9。 num1和 num2 均不以零开头,除非是数字 0 本身。 不能使用任何标准库的大数类型(比如 BigInteger)或直接将输入转换为整数来处理 基于竖式乘法,先逐位乘算,再进位相加: func multiply(num1 string, num2 string) strin...阅读全文

Segmentfault 2020-02-19 16:32:34 邹友

Go 每日一库之 carbon

简介 一线开发人员每天都要使用日期和时间相关的功能,各种定时器,活动时间处理等。标准库time使用起来不太灵活,特别是日期时间的创建和运算。carbon库是一个时间扩展库,基于 PHP 的carbon库编写。提供易于使用的接口。本文就来介绍一下这个库。 快速使用 第三方库需要先安装: $ go get github.com/uniplaces/carbon 后使用: package main import ( "fmt" "time" "github.com/uniplaces/carbon" ...阅读全文

Segmentfault 2020-02-19 16:32:33 darjun

golang学习笔记(二):流程控制

欢迎访问我的博客和github! 今天咱们把烦人的事情丢一丢,继续来学习go的基础知识。 这篇文章记录go语言的流程控制和更多类型。 流程控制 for Go 只有一种循环结构:for 循环。 基本的 for 循环由三部分组成,它们用分号隔开: 初始化语句:在第一次迭代前执行 条件表达式:在每次迭代前求值 后置语句:在每次迭代的结尾执行 初始化语句通常为一句短变量声明,该变量声明仅在 for 语句的作用域中可见。 一旦条件表达式的布尔值为 false,循环迭代就会终止。 注意:和 C、Java、J...阅读全文

Segmentfault 2020-02-19 14:32:34 Veeupup

爬虫管理平台 Crawlab v0.4.6 发布

前言 本次更新主要集中在日志管理、任务触发、爬虫展示等优化,以及加入 Node.js SDK。 更新日志 功能 / 优化 Node.js SDK. 用户可以将 SDK 应用到他们的 Node.js 爬虫中. 日志管理优化. 日志搜索,错误高亮,自动滚动. 任务执行流程优化. 允许用户在触发任务后跳转到该任务详情页. 任务展示优化. 在爬虫详情页的最近任务表格中加入了“参数”列. #295 爬虫列表优化. 在爬虫列表页加入"更新时间"和"创建时间". #505 页面加载占位器. Bug 修复 定时...阅读全文

Segmentfault 2020-02-19 09:32:32 MarvinZhang

提升科研远程办公效率:代码同步工具sync-go

为了提高自己远程办公的效率,花了不到一天的时间,开发了一个代码同步工具,来同步多个远程服务器之间的代码。 地址:github.com/nladuo/sync… 针对场景 最近由于肺炎疫情大家都在远程办公,我平时的开发工具其实就是终端+PyCharm。 终端连接服务器运行命令,然后通过PyCharm的同步工具把代码实时的上传到服务器上,大概就是这样的: 然而,服务器都是内网的,在家连到服务器上就需要通过配置代理,如果不在实验室,那么如果我连接到服务器1,那就要多经历2-3次ssh。比如说termn...阅读全文

掘金 2020年02月15日 叁公子KCN

golang学习笔记(一):包,变量,函数

欢迎访问我的博客和github! go 语言学习笔记第一弹,来自 gotour ,以后要常写笔记,把自己学习笔记记录下来,就算只是笔记也要多写。 好记性不如烂笔头,也要多锻炼自己的写作能力。 说实话,今天很累了,最近在折腾操作系统内核,因为原先写了个bootloader,现在想要转向 grub 来,遇到坑太多了,已经两天了????。 还是接触一点新知识简单的东西,来缓冲一下,脑子迷迷糊糊的。 package 每个Go程序由很多包组成。 程序都是从 main 包开始运行。 该程序正在使用导入路径为...阅读全文

Segmentfault 2020-02-18 16:32:33 Veeupup

03. 从零开始学Go语言:五种变量创建的方法

点击上方“Python编程时光”,选择“加为星标”第一时间关注Python技术干货!对于只有 Python 语言经验的朋友,也许会不太理解声明这个过程,在 Python 中直接拿来就用,也不用声明类型啥的。Go 语言是静态类型语言,由于编译时,编译器会检查变量的类型,所以要求所有的变量都要有明确的类型。变量在使用前,需要先声明。声明了类型,就约定了你这个变量只能赋该类型的值。声明一般有以下五种方法,其中前面两种同样也可用于定义常量,只需把关键字 var 变成 const 即可。第一种 :一行声明...阅读全文

微信公众平台 2020-02-14 18:03:38 Python编程时光

Golang程序诊断

简介 Go生态系统提供了一整套用于诊断Go程序中的逻辑和性能问题的API和工具。该篇文章总结了可用的工具,并帮助Go用户针对他们的特定问题选择合适的工具。 诊断解决方案可以分为以下几类: Profiling: Profiling工具分析Go程序的复杂性和成本,例如其内存使用情况和经常调用的函数,以识别Go程序的最耗费资源的部分。 Tracing: Tracing是一种工具代码,可以在调用或用户请求的整个生命周期中分析延迟。跟踪提供了每个组件对系统总体延迟造成多少延迟的概述。跟踪可以跨越多个Go进...阅读全文

Segmentfault 2020-02-18 12:32:34 iyacontrol

五分钟学会使用 go modules(含在家办公使用技巧)

作者 | 孙健波(天元) 阿里巴巴技术专家 导读:go modules 是 golang 1.11 新加的特性。如今 1.13 都已经发布了第 7 个小版本了,几乎所有大项目均已开始使用,这自然也包括 Kubernetes 生态中的众多项目。笔者在开发 OAM 相关项目的时候,却发现 modules 的各项功能看似简单,却并没有那么好用,于是便想给大家分享一下使用心得,希望大家也能在最短时间内学会 modules 的使用,避免踩坑。 modules 是什么? 简单说就是包管理,Golang 的包...阅读全文

Segmentfault 2020-02-17 20:32:33 阿里巴巴云原生

WebSocket 双端实践(iOS/ Golang)

上一篇:《今天我们来聊一聊WebSocket》 主要介绍了WebSocket的原理、应用场景等等。 本篇将介绍WebSocket的双端实战(Client、Server)。 分为两部分: 1.Client:使用Starscream(swift)完成客户端长链需求。 2.Server:使用Golang完成服务端长链需求。 一、使用Starscream(swift)完成客户端长链需求 首先附上Starscream:GitHub地址 第一步:将Starsream导入到项目。 打开Podfile,加上: ...阅读全文

简书 2020-02-14 00:32:57 奇舞647

WebSocket 双端实践(iOS/ Golang)

本篇将介绍WebSocket的双端实战(Client、Server)。分为两部分:1.Client:使用Starscream(swift)完成客户端长链需求。2.Server:使用Golang完成服务端长链需求。一、使用Starscream(swift)完成客户端长链需求首先附上Starscream:GitHub地址第一步:将Starsream导入到项目。打开Podfile,加上:pod'Starscream','~> 4.0.0'复制代码接着pod install。第二步:实现WebSocke...阅读全文

简书 2020-02-14 00:32:56 废旧金属液压压块机

Go Web编程--应用数据库

今天我们继续接着前几篇关于Go Web编程的文章往下延伸。在Web应用程序中几乎每个应用场景都需要存储和检索数据库中的数据。当你处理动态内容,为用户提供表单以输入数据或存储登录名和密码凭据以供用户进行身份验证时,都需要用到数据库。 MySQL数据库是整个互联网中最常用的数据库。MySQL已经存在了很长时间,还在不停的进化并且随着互联网一起发展已多次证明了其位置和稳定性。本文我们将探究Go中数据库访问的基础知识,在开始之前我们先更新一下我们使用的开发环境,之前在文章用Docker快速搭建Go开发环...阅读全文

简书 2020-02-14 00:32:56 全自动废纸液压打包机

leetcode_1221

Golang: 思路:这题题意有点问题,输入也不是平衡字符串,对输出也有要求。简单来说,定义一个sum=0,从0开始往下走,找到一个平衡字符串,sum+1。然后从剩下的字符串里继续走,直到找完整个字符串为止。 代码如下: func balancedStringSplit(s string) int { i:=0 count:=0 sum:=0 for i<=len(s)-1{ if s[i]=='L'{ sum++ }else{ sum-- } if sum==0 { count++ } i++...阅读全文

简书 2020-02-14 00:32:56 淳属虚构

WebSocket双端实践(iOS/ Golang)

一、使用Starscream(swift)完成客户端长链需求首先附上Starscream:GitHub地址第一步:将Starsream导入到项目。打开Podfile,加上:pod'Starscream','~> 4.0.0'复制代码接着pod install。第二步:实现WebSocket能力。导入头文件,import Starscream初始化WebSocket,把一些请求头包装一下(与服务端对好)privatefuncinitWebSocket(){// 包装请求头varrequest =U...阅读全文

简书 2020-02-14 00:32:55 秸秆青储液压打包机

新冠疫情严重,居家远程办公

新冠疫情严重,居家远程办公不平凡的庚子鼠年2020年庚子鼠年是个不平凡的新年,人说每逢庚子年都会发生一些大事,果不然这年的新年居然发生大规模的传染病毒。这个新年过的比较惊心动魄????,唯一点比较好的是,现在啥都变的安静了,路上车也少了,人也少了,仿佛回到了木心诗里写的那样一切变慢了。虽然在家那也不去的"隔离"了十几天,但是随着日子的增加,你的房贷,车贷,花呗还款这些还是会到来的,你不上班就木有收入了,公司也会陷入发展停滞。这些都是我们不愿看到的。作为互联网公司相比传统公司的好处,我们可以不用接...阅读全文

简书 2020-02-14 00:32:55 秸秆青储液压打包机

leetcode_1217

Golang: 思路:这题除了提醒我们审题的重要性,没有其他意义。简单来说,找一下数组里奇数和偶数的数目各有多少,然后返回那个少的。 代码如下: func minCostToMoveChips(chips []int) int { numeven:=0 numodd:=0 for i:=0;i<len(chips);i++{ if chips[i]%2==0 { numeven++ }else{ numodd++ } } if numeven>numodd { return numodd }el...阅读全文

简书 2020-02-14 00:32:54 淳属虚构

leetcode_1185

Golang: 思路:这题向我们展示了学数学的如何杀人诛心!!!让我们记住这个公式:基姆拉尔森计算公式,W=(d+2m+3(m+1)/5+y+y/4-y/100+y/400+1)%7,注意,1月份看成13月份,2月份看成14月份,比如2019-01-21应该被视作2018-13-21来计算。 代码如下: func dayOfTheWeek(day int, month int, year int) string { res:=[]string{"Sunday","Monday","Tuesday...阅读全文

简书 2020-02-14 00:32:54 淳属虚构

leetcode_1184

Golang: 思路:这题属于简单题,简单题的意义就是比谁的方法效率更高。这道题里,distance数组是一定会被访问一整遍的,那么如何只用一次遍历就得到结果呢?简单的说,当我们找到点i和点j顺时针方向的距离后,那么数组中剩下的数总和就是点i到点j逆时针方向的距离之和了。我们从这两个和里面返回小的那个即可。 代码如下: func distanceBetweenBusStops(distance []int, start int, destination int) int { if start==...阅读全文

简书 2020-02-14 00:32:54 淳属虚构

golang自带hex包的使用说明

hex包主要是将字节流转换成16进制的操作. 主要操作函数 hex.EncodedLen 计算编码的长度, 实际长度*2 hex.DecodedLen 计算解码的长度.实际是长度/2 hex.Encode 编码函数 hex.Decode 解码函数 //16进制解码 func HexDecode(s string) []byte { dst := make([]byte, hex.DecodedLen(len(s))) //申请一个切片, 指明大小. 必须使用hex.DecodedLen n, e...阅读全文

简书 2020-02-14 00:32:53 百里江山