Golang环境安装(WSL-Ubuntu)

注:该文章原本服务于中山大学服务计算课第一次作业谁适合看本文?在上pml的服务计算课的同学使用Ubuntu,正在安装golang的小白使用Wsl,正在安装golang的小白使用Windows,纠结于安装虚拟机或者双系统,且正在安装golang的小白目录1 系统环境2 安装Golang2.1 自动安装2.2 版本低会有什么问题?2.3 更新3 环境变量3.1 在哪里设置环境变量3.2 根据你的情况修改环境变量4 hello.go5 安装go tools5.1 从官方github仓库中拉取来自官方的...阅读全文

Segmentfault 2020-09-17 21:32:33 陈国帆

Golang标准库——archive/tar

tar tar包实现了tar格式压缩文件的存取。本包覆盖大多数文件的变种,包括GUN和BSD生成的tar文件。 Constants const ( // 类型 TypeReg = '0' // 普通文件 TypeRegA = '\x00' // 普通文件 TypeLink = '1' // 硬链接 TypeSymlink = '2' // 符号链接 TypeChar = '3' // 字符设备节点 TypeBlock = '4' // 块设备节点 TypeDir = '5' // 目录 Type...阅读全文

简书 2020-09-14 02:32:38 DevilRoshan

go规则引擎 grule

规则引擎由是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据业务规则做出业务决策。 grule是golang实现的开源规则引擎。 grl grule有自己的DSL语言来定义规则,GRL,类似Drools(java实现的一款规则引擎)中的DRL。 结构: rule <rule_name> <rule_description> <attribute> <value> { when <conditions> t...阅读全文

简书 2020-09-14 02:32:38 nil_ddea

浅谈Golang的unsafe.Pointer

一、Golang指针与C/C++指针的差别 在Golang支持的数据类型中,是包含指针的,但是Golang中的指针,与C/C++的指针却又不同,笔者觉得主要表现在下面的两个方面: 弱化了指针的操作,在Golang中,指针的作用仅是操作其指向的对象,不能进行类似于C/C++的指针运算,例如指针相减、指针移动等。从这一点来看,Golang的指针更类似于C++的引用 指针类型不能进行转换,如int不能转换为int32 上述的两个限定主要是为了简化指针的使用,减少指针使用过程中出错的机率,提高代码的鲁棒...阅读全文

简书 2020-09-13 23:32:38 开发者共读

Golang输入一个字符串,打印出该字符串中字符的所有排列

输入一个字符串,打印出该字符串中字符的所有排列。 例如输入字符串abc,则输出由字符a、b、c 所能排列出来的所有字符串abc、acb、bac、bca、cab 和cba。 分析:这是一道很好的考查对递归理解的编程题。 参考网上一个Java例子,但没能理解 func permutation( str []byte, i int) { if i > len(str) { return } if i == len(str) -1 { println(string(str[:])) }else { fo...阅读全文

简书 2020-09-13 22:32:39 ES_KYW

Golang求和为n 连续正数序列

求和为n 连续正数序列 题目:输入一个正数n,输出所有和为n 连续正数序列。 例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3 个连续序列1-5、4-6 和7-8。 func sum(m int){ var a,b int a = 1 b = a + 1 for m > b{ // sn = n*a1 + n*(n-1)*d/2 等差数列 for a < b{ // 30 = 2*(5-1+1)*1 + (5-1+1)*(5-1-1+1) 12345 if 2*m ==...阅读全文

简书 2020-09-13 19:32:38 ES_KYW

循环链表 python golang实现

循环链表就是将单链表的末尾指向其头部,形成一个环。循环链表的增删操作和单链表的增删操作 区别不大。只是增加时,需要考虑空链表增加第一个节点的特殊情况;删除时需考虑删除节点是头/尾节点,和链表中只有一个节点的特殊情况。 golang实现: type Node struct { value int next *Node } type Circle struct { tail *Node lenth int } // 增加节点: func (c *Circle) add(value int) { ne...阅读全文

简书 2020-09-13 12:32:38 NothingLeft了

Go: A Documentary 发布!

以前经常有读者问我,哪儿可以找到 Go 语言的前世今生,这种时候我们往往会告诉他去看 issues 和 proposals。但资料有点分散,且没有索引体系。因此不少人新入门的读者读着读着就跑偏了,又或是在第一步找资料上就被拦住了。最近欧神(@changkun)低调的发布了 《Go: A Documentary》,这个文档收集了 Go 开发过程中许多有趣(公开可见的)的问题,讨论,提案,CL 和演讲,其目的是为 Go 历史提供全面的参考。个人认为这份资料非常的有价值,相当于欧神把资料索引整理好了,...阅读全文

Segmentfault 2020-09-17 09:32:33 煎鱼

go-ElasticSearch实战篇(二)

前言哈喽,everybody,这是go-elastic学习系列教程第二篇文章。上一篇我们学习了ElasticSearch基础,如果还不懂基础的,可以先看一看上一篇文章,传送门。这一篇我们开始实战,写了一个小demo,带你们轻松入门ElasticSearch实战开发,再也不用担心es部分的需求开发了。代码已上传github,可自行下载学习。如果能给一个小星星就好啦。好啦,废话不多说,直接开始吧。github地址:https://github.com/asong2020/...背景在开始之前,我先来...阅读全文

Segmentfault 2020-09-16 21:32:33 asong

微服务的战争:级联故障和雪崩

“微服务的战争” 是一个关于微服务设计思考的系列题材,主要是针对在微服务化后所出现的一些矛盾/冲突点,不涉及具体某一个知识点深入。如果你有任何问题或建议,欢迎随时交流。在 微服务的战争:统一且标准化 中,经过好几周与不同业务组不同事业部的跨部门讨论后,终于把初始的标准化方案给定下来了,大家欢快的使用起了内部的统一框架,疯狂的创建起了新服务,没隔多久服务调用链就变成了下图:服务间存在多次内部调用,服务 A =》服务 B =》服务 C =》服务D,而 服务 E =》 服务 B,服务 F =》服务 E...阅读全文

Segmentfault 2020-09-16 20:32:32 煎鱼

Docker 安装和容器部署服务

1. Docker是什么? 在互联网时代人们对美好生活的追求驱动下,大量的应用和服务被创建了出来,这些应用和服务通常都部署不同服务器上.一切看上去都是那样的美好 然而.... 这些应用和服务的开发运维人员表示:"宝宝心里苦" 情况是在一个IT部门可能技术栈比较丰富,有C/C++的,java的,PHP的,Python的,Golang 的,JS 的等等,为此在不得不配置大量的复杂的不同的环境,另外不同的应用和服务依赖的版本可能不同,又是一个令人脑阔大的问题,另外在业务扩展的时候可能又要购买新的服务器...阅读全文

简书 2020-09-12 22:32:42 楚江云

Go | Gin 解决跨域问题跨域配置

<h1> Go | Gin 解决跨域问题跨域配置 </h1>前言在前后端分离的项目中,经常会遇到跨域问题,遇到问题该如何解决呢?!一、关于跨域解决方案关于跨域的解决方法,大部分可以分为 2 种nginx反向代理解决跨域服务端设置Response Header(响应头部)的Access-Control-Allow-Origin对于后端开发来说,第 2 种的操作性更新灵活,这里也讲一下 Gin 是如何做到的二、使用步骤在 Gin 中提供了 middleware (中间件) 来做到在一个请求前后处理响...阅读全文

Segmentfault 2020-09-16 09:32:33 双鬼带单

Etcd:Kubernetes集群的大脑

Etcd是Kubernetes的关键组件,因为它存储了集群的整个状态:其配置,规格以及运行中的工作负载的状态。在本文中,我们将会揭开其神秘的面纱,了解etcd如何存储所有这些信息。Etcd 简介Etcd被定义为分布式,可靠的键值存储,用于分布式系统中最关键的数据。在Kubernetes世界中,etcd用作服务发现的后端,并存储集群的状态及其配置。Etcd被部署为一个集群,几个节点的通信由Raft算法处理。在生产环境中,集群包含奇数个节点,并且至少需要三个。在 http://thesecretli...阅读全文

Segmentfault 2020-09-16 09:32:33 iyacontrol

Linux服务器性能调优之I/O调优详解

1.进程可以打开的文件数(高并发时常用)ulimit -n#查看一个进程可以打开的文件数修改进程可以打开的最大文件数临时修改:ulimit -n [进程数]永久修改:修改限制用户资源配置文件vim /etc/security/limits.conf末尾添加* soft nofile 102400* hard nofile 102400----------------------------------------------------------------------------------...阅读全文

简书 2020-09-12 16:32:39 linux大本营

MAC工具记录 - zsh&三剑客

在 oh-my-zsh 中使用 fasd、ripgrep、fzf。 快速跳转工具 - fasd fasd 是一个命令行加速工具,提供了对文件和文件夹的快速访问。 使用brew安装 # brew 查询 fasd 安装包 brew search fasd # brew 安装 brew install fasd # 更新 brew update fasd # 卸载 brew uninstall fasd 设置oh-my-zsh 在 oh-my-zsh 文件中开启 fasd 插件 # 编辑 oh-my-...阅读全文

简书 2020-09-12 14:32:38 阿猫_mao

Go语言变量定义,每省略一次声明,就会刨一个坑

在Go语言中,变量可以声明之后再赋值,也可以不声明,直接就用。 var strM string strM = "Hello Golang" strN := "Hello Golang" 我刚开始的时候有点困惑,一把锁为什么要配两把钥匙,使用一种方法不就香吗? 知道刚才,我碰到一个问题,才发现Golang定义这两种方式,真的很香。 package main import "fmt" func main() { n := map[string]int{ "n1":1, "n2":2, } if k,...阅读全文

简书 2020-09-12 14:32:37 蚂蚁捉虫虫

云栖大会,云效分论坛,9.18不见不散!

长按识别二维码,可进行大会订阅,9月18日下午13:00直达会场,云栖大会,云效分论坛,不见不散!云效将带给您最前沿的技术~~~ 点击链接可直达会场:[https://yunqi.aliyun.com/2020...] 关于云效⬇️⬇️⬇️阿里云 云效:云效企业级一站式DevOps平台,支持公共云、专有云和混合云多种部署形态,通过人工智能、自动化技术的应用提升开发者的研发效能,持续交付有效价值。云效DevOps产品:企业级一站式DevOps平台,提供从「需求->开发->测试->发布->运维->运...阅读全文

Segmentfault 2020-09-15 23:32:33 Yvonne

Go 语言之微信公众号开发

前言前两天分享了一下 网抑云之微信公众号开发, 现已整理开源,还有许多要完善的地方<!--more-->微信公众号开发详情请点击 ronething/mp-devmusic 目前仅支持网抑云usage: - /help # 查看帮助 - /music/play/:sid # 播放音乐 sid 为歌曲 id - /music/url/:sid # 获取音乐下载链接 - /music/search/:keywords # 通过关键字搜索歌曲 - /music/search/:keywords/:pa...阅读全文

Segmentfault 2020-09-15 09:32:32 ashing

【技术猩球】开源啦! Go 语言系统测试覆盖率收集利器 goc

工程效能领域,测试覆盖率度量总是绕不开的话题,我们也不例外。在七牛云,我们主要使用go语言构建云服务,在考虑系统测试覆盖率时,最早也是通过围绕原生 go test -c -cover的能力来构建。且我们已经做了很多自动化工作,能够针对很多类型的代码库,自动插桩服务,自动生成 TestMain() 等方法,但随着接入项目越来越多,以及后面使用场景的不断复杂化,我们发现这套方案还是有其先天局限,会让后面越来越难受:程序必须关闭才能收集覆盖率。如果将这套系统仅定位在收集覆盖率数据上,这个痛点倒也能忍受...阅读全文

51CTO博客 2020-09-11 16:02:26 七仙女很忙