go
chenyulancn
python、golang、c/c++、linux、虚拟化、大数据
展开
-
golang.18泛型
写一段段冒泡排序的代码,但是这个bubbleSort函数参数类型只能为int64,也就是说我们只能传入一个类型为int64切片,如果我需要传入其他类型的数据,那么我们就需要重新写一个函数逻辑是相同的代码片段但是类型又不同,这就是没有泛型带来的痛苦.package mainimport "fmt"func bubbleSort(sequence []int64) { for i := 0; i < len(sequence)-1; i++ { for j := ..转载 2022-04-12 08:38:44 · 1613 阅读 · 0 评论 -
golang 多条件判断 switch 比 if else 更简洁
研发中经常会遇到多个条件的组合判断,if else 不太简洁直观,索性使用switch代替,相对来说清晰明了一些:示例如下:func TestXl(t *testing.T) { x := "" y := "1" switch { case x == "" && y == "": print("x,y both nil") case x != "" && y != "": print("x,y both not.原创 2021-12-15 19:12:57 · 2295 阅读 · 0 评论 -
mysql 事务隔离相关操作
1. 查看全局和session级别事务隔离属性SELECT @@GLOBAL.transaction_isolation, @@GLOBAL.transaction_read_only;SELECT @@SESSION.transaction_isolation, @@SESSION.transaction_read_only;2.设置事务隔离属性属性枚举值:level: { REPEATABLE READ | READ COMMITTED | READ UNCO原创 2021-08-11 15:11:40 · 943 阅读 · 0 评论 -
golang 计算两个时间相差具体哪几个月
研发过程中需要根据两个时间相差几个月,计算出月份后,联合查询以年月为后缀的数据库表。例如: 2020-06-11 15:30:30 ~2020-06-11 15:30:30原创 2021-06-16 16:29:04 · 2401 阅读 · 0 评论 -
golang 正则分组匹配多个值
import ( "encoding/json" "fmt" "regexp")str = `9x_xx:995:88` // `9x_xx:995`// 使用命名分组,一次匹配多个值re := regexp.MustCompile(`(?P<fname>\w+):+(?P<mod>[1-9]*):*(?P<strlen>[0-9]*)`)match := re.FindStringSubmatch(str)groupNames :.原创 2021-03-09 21:18:46 · 3671 阅读 · 0 评论 -
golang 判断字符串是否为数字字符串
import ( "fmt" "testing" "unicode")func TestRulex(t *testing.T) { c:=isDigit("0234") fmt.Println(c)}func isDigit(str string) bool{ for _,x:=range []rune(str){ if !unicode.IsDigit(x) { return false } } return true}原创 2021-02-23 19:11:40 · 5205 阅读 · 1 评论 -
mgo 批量插入--具体类型的切片 转 interface 切片解决办法
通过xml.Unmarshal获得一个[]Province 然后想把它插到mongodb中,使用的是mgo driver。 那么怎样将[]Province切片转为[]interface{}切片呢?法1. c := session.DB(database).C("Provinces") var provinces []Province var docs []interface{} ...转载 2019-02-18 22:08:58 · 1732 阅读 · 0 评论 -
golang 截取指定长度的中英混合字符串无乱码实现
网上大部分使用 rune 实现中文无乱码截取,但这种方法适合纯中文字符串,并不适合中英文混合且不知道各多少个的情况。使用字符的最小存储单元,进行字符类型判定是比较好的解决办法。代码入下:func SubstrByByte(str string, length int) string { bs := []byte(str)[:length] bl := 0 for i:=len(...转载 2018-12-21 16:16:41 · 1287 阅读 · 0 评论 -
golang笔记——命令
1、GO命令一览 GO提供了很多命令,包括打包、格式化代码、文档生成、下载第三方包等等诸多功能,我们可以通过在控制台下执行 go 来查看内置的所有命令 下面来逐个介绍,也可以详细参考 https://github.com/hyper-carrot/go_command_tutorial 2、go build 这个命令可以直接使用,也可以带上代码包或源码文件使用。 ...转载 2018-10-21 22:31:52 · 231 阅读 · 0 评论 -
golang中使用 mongoDB ObjectId
ObjectIdmongoDB中存储的文档必须有一个”_id”键,这个键的值可以是任何类型的,默认是ObjectId对象。在一个集合里面,每个文档都有唯一的”_id”值,来确保集合里面每个文档都能被唯一标识。那么你可能会问,既然ObjectId的作用是用来标识文档,那为什么不用普通递增id呢?后文有解释。这就需要了解MongoDB的特点,MongoDB是一个基于分布式文件存储的数据库。因此在...转载 2018-09-30 15:09:00 · 1406 阅读 · 1 评论 -
Golang开发新手常犯的50个错误
《50 Shades of Go: Traps, Gotchas, and Common Mistakes for New Golang Devs》原文地址:http://devs.cloudimmunity.com/gotchas-and-common-mistakes-in-go-golang/index.html一、初级1、不允许左大括号单独一行2、不允许出现未使用的变量...转载 2018-10-18 11:06:53 · 929 阅读 · 0 评论 -
golang中json与struct中tag
使用 Golang 的 encoding/json 库已经提供了很好的封装,可以让我们很方便地进行 JSON 数据的转换。Go 语言中数据结构和 JSON 类型的对应关系如下表:golang 类型 JSON 类型 注意事项 bool JSON booleans 浮点数、整数 JSON numbers 字符串 JSON s...转载 2018-10-03 08:10:37 · 2719 阅读 · 0 评论 -
Golang- import 导入包的语法
一 、包的导入语法 在写Go代码的时候经常用到import这个命令用来导入包文件,看到的方式参考如下: import( "fmt" ) 然后在代码里面可以通过如下的方式调用 fmt.Println("hello world") 上面这个fmt是Go语言的标准库,他其实是去GOROOT下去加载该模块...转载 2018-09-12 13:35:45 · 707 阅读 · 0 评论 -
Go开发工具
在Go语言中,我们很多操作都是通过go命令进行的,比如我们要执行go文件的编译,就需要使用go build命令,除了build命令之外,还有很多常用的命令,这一次我们就统一进行介绍,对常用命令有一个了解,这样我们就可以更容易的开发我们的Go程序了。Go 开发工具概览go这个工具,别看名字短小,其实非常强大,是一个强大的开发工具,让我们打开终端,看看这个工具有哪些能力。➜ ~ go ...转载 2018-06-22 09:46:51 · 1416 阅读 · 0 评论 -
十条有用的 Go 技术
十条有用的 Go 技术这里是我过去几年中编写的大量 Go 代码的经验总结而来的自己的最佳实践。我相信它们具有弹性的。这里的弹性是指:某个应用需要适配一个灵活的环境。你不希望每过 3 到 4 个月就不得不将它们全部重构一遍。添加新的特性应当很容易。许多人参与开发该应用,它应当可以被理解,且维护简单。许多人使用该应用,bug 应该容易被发现并且可以快速的修复。我用了很长的时间学到了这些转载 2014-12-18 16:52:31 · 867 阅读 · 0 评论