golang copy

package main import ( "fmt" "io" "os" "path/filepath" "strconv" ) var BUFFERSIZE int64 func Copy1(src, dst string, BUFFERSIZE int64) error { sourceFileStat, err := os.Stat(src) if err != nil { return err } if !sourceFileStat.Mode().IsRegular() { retu...阅读全文

简书 2020-11-13 16:32:39 司空儿

Go基础编程:Map

Map《Go语言圣经》:哈希表是一种巧妙并且实用的数据结构。它是一个无序的key/value对的集合,其中所有的key都是不同的,然后通过给定的key可以在常数时间复杂度内检索、更新或删除对应的value。在Go语言中,一个map就是一个哈希表的引用,map类型可以写为map[K]V,其中K和V分别对应key和value。map中所有的key都有相同的类型,所以的value也有着相同的类型,但是key和value之间可以是不同的数据型。其中K对应的key必须是支持==比较运算符的数据类型,所以m...阅读全文

Segmentfault 2020-11-18 16:32:33 一夕烟云

使用唯一id,生成唯一字符串订单号,唯一邀请码等唯一字符串,并可以反序列化原id

Hashids包 用来把整数生成唯一字符串(比如:通过加密解密id来隐藏真实id) generate short unique ids from integers 官方地址 支持多种语言: JavaScript, Ruby, Python, Java, Scala, PHP, Perl, Perl 6, Swift, Clojure, Objective-C, C, C++11, D, F#, Go, Erlang, Lua, Haskell, OCaml, Elixir, Rust, Smal...阅读全文

简书 2020-11-13 10:32:40 吃馍夹菜

KVM环境搭建

安装前端环境 安装nodejs 下载地址 https://nodejs.org/en/ 解压到/usr/local/目录下 tar -xvf node-v14.15.0-linux-x64.tar.xz -C /usr/local 添加环境变量 修改/etc/profile export PATH=$PATH:/usr/local/node-v14.15.0-linux-x64/bin source /etc/profile 查看下nodejs版本 image.png 安装go语言环境 安装go...阅读全文

简书 2020-11-13 00:32:43 在阳光下睡觉

七牛云【对象存储团队】热招岗位

七牛云介绍以及产品: www.qiniu.com2020年完成第F轮融资,国内第一批在 Go 语言方面进行实践的公司,七牛云是全球最早将 Go 语言大规模应用于商业化产品的团队。关于薪资: 按照面试情况来定级、定薪、职位title、具体工作内容关于入职时间:年前可锁定Offer, 入职时间可谈办公地点:上海/杭州(具体看岗位设置地点)简历投递: Email:lutingting@qiniu.com We chat: LTT822807热招岗位汇总:(1)Golang后台研发(上海/杭州,高级以上...阅读全文

简书 2020-11-13 00:32:42 城市小马甲

【实战分享】从选型到项目落地,漫谈 gRPC

什么是 gRPC? gRPC 的几种常见模式 在学习 gRPC 的时候,相信大家对于它的四种模式都有了解,我们来简单回顾一下: 简单模式(Simple RPC):这种模式最为传统,即客户端发起一次请求,服务端响应一个数据,这和大家平时熟悉的 RPC 没有什么大的区别,所以不再详细介绍。 服务端数据流模式(Server-side streaming RPC):这种模式是客户端发起一次请求,服务端返回一段连续的数据流。典型的例子是客户端向服务端发送一个股票代码,服务端就把该股票的实时数据源源不断的返...阅读全文

简书 2020-11-12 18:32:58 又拍云

领域驱动设计(DDD)战术上一些实践

个人能力有限,如有问题欢迎指导 程序设计谈不上什么最好,无论是面向过程编程,还是面向对象编程,我们都是在追求完美的道路上 不设计和过度设计都会对我们产生一些影响,最合适自己的设计才是最好的设计 DDD(Domain-Driven Design)领域驱动设计 领域驱动设计并不是什么银弹,简单的项目并不需要 DDD,引入后反而增加项目难度 DDD 更加适合解决复杂的业务问题,并不是说DDD设计模式有什么压倒性的优势也不是说它就是完美无缺的只是说它更适合干这事 要不要DDD 在业务刚开始的时候,我们的...阅读全文

写代码之前的准备(Go)

本来这应该作为我的第一篇文章,但是来到公司实习自己也有点不好意思过多询问。以至于学习了很多天GO语言的东西都想写代码,写不了。进来的时候让我下载了goland,这里我是知道应该去配置乱七八糟的,但是在学校机房呆惯了。对于这方面真是小白痴。知道和能弄好真是两个概念!!!还是觉得当实习生应该多问问吧!!!我这心路历程真的应该和大多数实习生一样了吧~(半吊子实习生,大神绕过)开发工具我这里都是都是windws10下的哈~这里我使用的是goland(当时带我的人说用这个,让后就是一顿行云流水的操作,完成...阅读全文

简书 2020-11-12 18:32:51 秃头小公主

golang 数组 切片 循环 range 注意

//例1 var a = [5]int{1, 2, 3, 4, 5} var r [5]int for i, v := range a { if i == 0 { a[1] = 12 a[2] = 13 } r[i] = v } fmt.Println("r = ", r) fmt.Println("a = ", a) /* 输出 r = [1 2 3 4 5] a = [1 12 13 4 5] 解析:循环时,为值传递(可以理解为参与循环的是 a 的副本),开始循环即确定每次循环的元素值 */...阅读全文

简书 2020-11-12 18:32:51 Dcbamboo

glang--单链表翻

golang的链表结构简单,如下 type ListNode struct { Val int //节点值 Next *ListNode //存储着下一个节点的地址,用指针表示 } 不废话,先定义并初始化一个单链表 func main() { head := new(ListNode) head.Val = 1 ln2 := new(ListNode) ln2.Val = 2 ln3 := new(ListNode) ln3.Val = 3 ln4 := new(ListNode) ln4.Va...阅读全文

简书 2020-11-12 18:32:50 20190729

golang--数组合并,并找出重复的元素

思路: 1、通过append把两数组合并成一个数组 arr = append(arr,arr1...) 2、通过map的特性将数组中重复的元素找出来 sameElem := make(map[int]int) //定义一个空map _, ok := sameElem[v] //利用ok表达式,往map中插入数组的元素,如果map中已经存在,则ok为true,反之为false 完整代码 package main import "fmt" func ArrayIntersection(arr []i...阅读全文

简书 2020-11-12 18:32:46 20190729

Golang Note | Regex in golang

Quick Start // Examples From Go by Example package main import ( "bytes" "fmt" "regexp" ) func main() { pattern := `p(\w+)ch` match, _ := regexp.MatchString(pattern, "peach") fmt.Println(match) // Output: true // Above we used a string pattern direct...阅读全文

简书 2020-11-12 18:32:46 WangLane

gin项目学习之路--简单工单系统(1)

一、项目背景 鉴于正在开发工单系统类似需求,和精进个人技术要求。使用go重构部分django功能,同时使用vue自定义组件功能加强对VUE的理解。 二、项目结构设计项目需具备的基础功能: 1、JWT认证与RABC访问控制(管理员可以修改其他用户的rabc权限) 2、工单发起和审批(两步,不做太复杂的业务) 3、excel附件上传及解析 4、调用其他系统交互 三、代码目录结构说明cmd 使用corba管理服务启停pkg 当前项目gopath 目录database 数据库相关+models 表结构定...阅读全文

Segmentfault 2020-11-18 15:32:33 战非罪

go 排序算法

1. 插入排序 // 排序函数 func sortarr(arr *[]int) *[]int { for i := 1; i <len(*arr);i++{ maxindex := (*arr)[i] // 默认一个数为最大值 index := i -1 // index从0开始 for index >=0&&(*arr)[index] > maxindex{ // index大于等于0,如果数组中有比maxindex值大的做下面处理 (*arr)[index+1] = (*arr)[inde...阅读全文

51CTO博客 2020-11-12 15:31:32 清风hao

你可能不知道的Golang

1. chan操作Channel状态结果Readnil阻塞 打开且非空输出值 打开但空阻塞 关闭的<默认值>, false (如果关闭前还有值会读完) 只写编译错误操作Channel状态结果Writenil阻塞 打开但填满阻塞 打开且不满写入值 关闭的panic 只读编译错误操作Channel状态结果closenilpanic 打开且非空关闭Channel; 读取成功,直到通道耗尽,然后读取产生值的默认值 打开但空关闭Channel; 读取成功,读取产生值的默认值 关闭的panic 只写编译错误...阅读全文

Segmentfault 2020-11-18 14:32:33 xxx小M

使用唯一id,生成唯一字符串订单号,唯一邀请码等唯一字符串,并可以反序列化原id

Hashids包用来把整数生成唯一字符串(比如:通过加密解密id来隐藏真实id)generate short unique ids from integers官方地址支持多种语言:JavaScript, Ruby, Python, Java, Scala, PHP, Perl, Perl 6, Swift, Clojure, Objective-C, C, C++11, D, F#, Go, Erlang, Lua, Haskell, OCaml, Elixir, Rust, Smalltalk...阅读全文

Segmentfault 2020-11-18 14:32:33 吃馍夹菜

【go-libp2p源码剖析】Swarm拨号

1. 简介 libp2p swarm 是用于 libp2p 网络的“低级”接口,可以更精细地控制系统的各个方面。swarm 可以建立监听,也可以向其他主机拨号建立新的连接(比如和某个主机建立 tcp 连接),而这里所指的拨号其实就是建立出站连接的过程,它的实现逻辑较为复杂,我们在这里做一个梳理。 2. 代码结构 仓库地址:https://github.com/libp2p/go-libp2p-swarm.git拨号相关代码主要分布在swarm_dial.go,limiter.go,dial_sy...阅读全文

51CTO博客 2020-11-11 14:37:03 Netwarps