golang 写个选择排序

先看选择排序定义。 初始状态:无序区为R[1..n],有序区为空; 第i趟排序(i=1,2,3…n-1)开始时,当前有序区和无序区分别为R[1..i-1]和R(i..n)。该趟排序从当前无序区中-选出关键字最小的记录 R[k],将它与无序区的第1个记录R交换,使R[1..i]和R[i+1..n)分别变为记录个数增加1个的新有序区和记录个数减少1个的新无序区; n-1趟结束,数组有序化了。 可以不拘小节,不作优化的情况下写出代码。 func selectionSort(arr []int) { f...阅读全文

简书 2021-01-16 23:32:39 追风骚年

golang 写个插入排序

有点上瘾,再来写一个。 从第一个元素开始,该元素可以认为已经被排序; 取出下一个元素,在已经排序的元素序列中从后向前扫描; 如果该元素(已排序)大于新元素,将该元素移到下一位置; 重复步骤3,直到找到已排序的元素小于或者等于新元素的位置; 将新元素插入到该位置后; 重复步骤2~5。 我在写插入排序的时候,一下写了 3 个版本,经测试都是可以使用,只是排序和排序之间越来越像。 func insertionSort(arr []int) { for i := 1; i < len(arr); i++...阅读全文

简书 2021-01-16 23:32:39 追风骚年

Java微服务 vs Go微服务,究竟谁更强!?

前言Java微服务能像Go微服务一样快吗?这是我最近一直在思索地一个问题。去年8月份的the Oracle Groundbreakers Tour 2020 LATAM大会上,Mark Nelson和Peter Nagy就对此做过一系列基础的的测试用以比较。接下来就给大家介绍下。在程序员圈子里,普遍的看法是Java老、慢、无聊 ,而Go是快、新、酷为了尽可能的进行一个相对公平的测试,他们使用了一个非常简单的微服务,没有外部依赖关系(比如数据库),代码路径非常短(只是操纵字符串),使用了小型的、轻...阅读全文

51CTO博客 2021-01-16 19:06:06 mb5ffbc824a2582

golang遍历时修改被遍历对象

前言很多时候需要将遍历对象中去掉某些元素,或者往遍历对象中添加元素,这时候就需要小心操作了。对于go语言中的一些注意事项我做了总结和示例,留下点笔记。遍历切片遍历切片时去掉元素,错误示例:func main() { arr := []int{1, 2, 3, 4} for i := range arr { if arr[i] == 3 { arr = append(arr[:i], arr[i+1:]...) } } fmt.Println(arr) }最终报错panic: runtime er...阅读全文

51CTO博客 2021-01-16 16:37:51 mb5ffbc824a2582

[译]巧用go:linkname 定制 TLS 1.3 加密算法套件

[译]原文:[Abusing go:linkname to customize TLS 1.3 cipher suites](https://www.joeshaw.org/abusing-go-linkname-to-customize-tls13-cipher-suites/) -- >``` 已获授权翻译转载 感谢Joe! 如翻译有误,还请大家不吝赐教!``` 当Go1.12发布后,我非常兴奋地去测试我们的新opt-in对TLS1.3支持情况。 TLS1.3对于当前的WEB安全协...阅读全文

Go语言中文网 2021-01-16 15:44:26 edgeidea

go调用封装虹软ArcFace人脸识别

go调用封装虹软ArcFace人脸识别 一、项目简介 由于公司是虹软的重度用户,出于工作需要和个人兴趣,寻思着用golang封装一下C++的SDK,利用golang的跨平台特性达到跨平台的效果(当然前提是SDK支持的平台) 项目已经开源到github(传送门),支持的SDK版本有:v2.x v3.x v4.0.0 二、编译环境与运行环境的准备 1. 安装go版本SDK 推荐使用go module的方式进行安装(需要哪个版本修改版本号即可): go get -u -d github.com/win...阅读全文

简书 2021-01-16 14:32:48 WindOSX

寒假第一周的学习

(一) 因为本身go的基础不扎实 ,所以在来园区之前我就想好要把go的基础再过一遍,我找了一个还算比较喜欢的视频,看的大概第一天晚上吧,博伦学长来我问我在干啥,我说想再回顾一下go基础,他说这个用着用着就好了,我说还是想再看一遍,学长说可以但是不要耽搁太长时间。我就继续看了下去,因为我做笔记有点慢,再加上一些其它的事情,这个视频并没有和我想的那样两天就结束了,到今天,我从视频里能够回顾到一些细节,温故而知新,第二遍理解比第一遍理解更多了一些,但是这样的效率太低了,我继续返回看书的过程。 (二) ...阅读全文

简书 2021-01-16 14:32:48 快乐肥宅代码少女

Go之简介

Go(又称Golang)是Google开发的一种静态,强类型、编译型、并发型的编程语言。其于2009年11月正式发布,成为开源代码项目。Go的语法接近C语言,但其支持垃圾回收功能,开发效率远高于C语言。而其对海量并发的支持,以及在运行效率,低内存消耗方面的优异表现,也有人称其为互联网时代的C语言。语言特色:简洁、快速、安全易学、高并发、有趣、开源内存管理、数组安全、编译迅速、跨平台、更具生产力Go语言用途:这可能是大家最关心的一个问题了,首先Go语言和大多数服务器端编程语言一样,可以进行web相...阅读全文

简书 2021-01-16 14:32:47 goodcoding

[Go] golang中接口值(interface)的比较

当写项目的过程中 , 有时候进行逻辑判断 , 如果没注意对两个interface类型的变量进行比较 , 会造成混乱问题接口比较的时候 , 只有当这两个变量的动态类型 , 动态值都相等的时候 , 才是相等的一个nil的interface类型 , 是包含下面俩的 , 动态类型和动态值 使用fmt.Printf("%T\n", w) 可以打印interface变量的动态类型比如项目里 , 这俩变量虽然都是interface{}的 值都是1 , 但是不能进行直接比较 , 这里我进行了全都转成字符串类型阅读全文

51CTO博客 2021-01-16 10:52:27 mb5ffbc824a2582

[Go] golang中接口值(interface)与nil比较或指针类型之间比较的注意问题

注意问题 , 当对interface变量进行判断是否为nil时 , 只有当动态类型和动态值都是nil , 这个变量才是nil下面这种情况不是nilfunc f(out io.Writer) {// ...do something...if out != nil {out.Write([]byte("done!\n")) } }var buf *bytes.Buffer f(buf) 上面的情况 , 动态类型部分不是nil , 因此 out就不是nil 动态类型为指针的interface之间进行比...阅读全文

51CTO博客 2021-01-16 10:39:22 mb5ffbc80063708

Golang 入门 数组

数组是指一系列同一类型数据的集合。数组中包含的每个数据被称为数组元素(element),这种类型可以是任意的原始类型,比如 int、string 等,也可以是用户自定义的类型。一个数组包含的元素个数被称为数组的长度。在 Golang 中数组是一个长度固定的数据类型,数组的长度是类型的一部分,也就是说 [5]int 和 [10]int 是两个不同的类型。Golang 中数组的另一个特点是占用内存的连续性,也就是说数组中的元素是被分配到连续的内存地址中的,因而索引数组元素的速度非常快。 本文将...阅读全文

Go语言中文网 2021-01-16 08:35:40 taisuiqpm9198

go channel使用及其实现原理

目录 channel背景 channel基本用法 channel应用场景 channel实现原理 channel数据结构 channel实现方式 channel注意事项 闲聊 【迈莫coding】 channel背景 channel是Go的核心类型,是Go语言内置的类型,你无需引包,就能使用它。你可以把它看作一个管道,在Go语言中流传着一句话,"执行业务处理的goroutine不要通过共享内存通信,要通过channel管道进行共享数据"。 channel和Go的另一种特性goroutine一起为...阅读全文

简书 2021-01-16 00:32:53 迈莫coding

2021年,字节/百度/阿里相继发布50W+优质Java岗(含内部面试真题及答案)

2021刚刚启程,各互联网大厂便发布了一大波优质Java岗,平均薪资总包都在40w左右,你心动了吗?下面给大家列出几个具体的岗位及要求。 此外,在文末还有分享:由各大厂面试官整理的字节、阿里、百度Java内部面试题(含答案),新鲜出炉!希望大家了解并掌握这些知识点,争取通过每一轮面试! 2021年刚启程 字节/阿里/ 百度 相继发布薪资总包 40w 优质Java岗(附内部面试题) 字节跳动Java 开发工程师 薪资:25~40k 16薪 扎实的计算机基础知识,较强的逻辑理解能力和学习能力 熟悉p...阅读全文

简书 2021-01-16 00:32:51 小迁不秃头

百题大冲关系列课程更新啦!这次是 Golang

此前,蓝桥云课已陆续出过「Pandas 百题大冲关」「NumPy 百题大冲关」「Python 百题大冲关」,获得了很好的反响,如今再次更新了「Golang 百题大冲关」。 「Golang 百题大冲关」采用 webide 环境,可先进行试学,感兴趣的小伙伴点击链接更多即可进入!阅读全文

简书 2021-01-16 00:32:49 蓝桥云课

golang 写个冒泡

在算法这个领域,大学的课程也都是从冒泡排序开始的,今天用 golang 写个简单的冒泡排序。 func bubbleSort(arr []int) []int { if len(arr) == 0 { return arr } for i := 0; i < len(arr); i++ { for j := 0; j+1 < len(arr); j++ { if arr[j] > arr[j+1] { arr[j], arr[j+1] = arr[j+1], arr[j] } } } retur...阅读全文

简书 2021-01-16 00:32:48 追风骚年

Golang后台单元测试实践

[toc] Why单元测试 让我们对重构与修改有信心 新功能的增加,代码复杂性的提高,优化代码的需要,或新技术的出现都会导致重构代码的需求。在没有写单元测试的情况下,对代码进行大规模修改,是一件不敢想象的事情,因为写错的概率实在太大了。而如果原代码有单元测试,即使修改了代码单测依然通过,说明没有破坏程序正确性,一点都不慌! 及早发现问题,降低定位问题的成本 bug发现的越晚,修复它的费用就越高,而且呈指数增长的趋势。作为编码人员,也是单元测试的主要执行者,能在单测阶段发现的问题,就不用等到联调测...阅读全文

简书 2021-01-16 00:32:48 CG_9b87

atomic.Value代替sync.RWMutex

记一次性能优化,读公司项目代码时候,发现好些使用sync.RWMutext的使用场景:项目启动时候对高频数据缓存到内存缓存中,同时每隔一段时间重新写一下这个缓存(用一个全局变量): type cosCred struct { Cred []int64 sync.RWMutex } var CosCred *cosCred // 每分钟写一次 func InitCosCred() { CosCred = new(cosCred) CosCred.Cred, _ = GetGlobalCredDat...阅读全文

简书 2021-01-16 00:32:43 laotoutou

聊聊gorm的Unscoped

序本文主要研究一下gorm的UnscopedUnscopedgorm.io/gorm@v1.20.11/chainable_api.gofunc (db *DB) Unscoped() (tx *DB) { tx = db.getInstance() tx.Statement.Unscoped = true return }Unscoped方法设置tx.Statement.Unscoped为trueDeletegorm.io/gorm@v1.20.11/callbacks/delete.gofu...阅读全文

Segmentfault 2021-01-17 02:32:40 .container .car 等

windows下如何玩转火热的go-zero

前言go-zero 是一个集成了各种工程实践的 web 和 rpc 框架。通过弹性设计保障了大并发服务端的稳定性,经受了充分的实战检验。go-zero 包含极简的 API 定义和生成工具 goctl,可以根据定义的 api 文件一键生成 Go, iOS, Android, Kotlin, Dart, TypeScript, JavaScript 代码,并可直接运行。这么牛,怎么不想去试一下?!go语言环境搭建配置GO语言环境新增go的代理GOPROXY=https://goproxy.io,di...阅读全文

51CTO博客 2021-01-15 19:07:31 mb5ffbc80063708