从零学习 Go 语言(03):数据类型之整型与浮点型

Hi,大家好呀,我是一个刚学习 Go 语言不久的新手,在入门 Golang 的这段时间里,我写了很多详细的学习笔记,很适合新手学习噢。这些文章已经发布在我的个人微信公众号里:《Go编程时光》里,今天开始将文章内容搬运到这里,希望有更多的人看到,给更的人带来帮助,但是这里文章会相对滞后,想获取最新文章,可以前往关注《Go编程时光》,请放心关注,这是一个纯分享的号,完全没有广告。 **系列导读 ** [从零学习 Go 语言(01):一文搞定开发环境的搭建](https://studygo...阅读全文

Go语言中文网 2020-03-24 19:39:27 hello_wbm

使用Artifactory集群作为文件共享中心

一、背景和痛点大企业内部,跨团队,跨地域,导致文件共享困难如果不使用Artifactory,如何实现跨数据中心的文件共享呢?挂载NFS文件系统,开通跨数据中心的rsync/sftp协议自研解决方案,通过REST API或者CLI方式, 例如,雅虎的dist工具私有或者公有的云储存方案利用SCM版本控制系统-         对于编译构建效率影响很大  NFS和云储存的方式对网络要求很高,稳定性得不到保证。自研的方式需要投入很多人力物力,利用SCM版本控制工具对二进制文件支持不好,尤其是大文件,还...阅读全文

Go语言中文网 2020-03-24 18:27:56 JFrogChina

Golang:通过小程序获取微信 openid

为什么要获取小程序的 openid 在开发微信小程序的过程中,小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。那么这个用户身份标识就是 openid。 小程序获取 openid 的流程 那么小程序获取 openid 的流程具体如下,这里我简化了一下,因为我们只需要获取到 openid 即可,具体可以参考这里 我们需要在小程序中调用 wx.login() 获取 code 码,然后将这个 code 码发送给后端,后端带着这个 code 码和 appi...阅读全文

掘金 2020年03月23日 startdusk

【Golang源码系列】二:Slice实现原理分析

作者:何海涛学而思网校技术团队;)原文:https://mp.weixin.qq.com/s/rb...众所周知,在golang中,slice(切片)是我们最常使用到的一种数据结构,是一种可变长度的数组,本篇文章我们主要结合源码来介绍一下slice的底层实现,以及在使用slice时的一些注意事项。 Slice结构体 首先我们来看一段代码: package main import ( "fmt" "unsafe" ) func main() { var a int var b int8 var c...阅读全文

Segmentfault 2020-03-29 10:32:34 LNMPR源码研究

Kuiper v0.2.1 正式发布 - 超轻量IoT边缘流处理

日期:2020/3/23 Kuiper 团队宣布发布 Kuiper 0.2.1 Kuiper 0.2.1 可以从这里下载。 EMQ X Kuiper 是 Golang 实现的轻量级物联网边缘分析、流式处理开源软件,可以运行在各类资源受限的边缘设备上。Kuiper 设计的一个主要目标就是将在云端运行的实时流式计算框架(比如 Apache Spark,Apache Storm 和 Apache Flink 等)迁移到边缘端。Kuiper 参考了上述云端流式处理项目的架构与实现,结合边缘流式数据处理的...阅读全文

Segmentfault 2020-03-29 10:32:33 EMQX

Chaos Mesh - 让时间在容器中自由摇摆

Chaos Mesh 是最近开源的 Kubernetes 混沌测试平台,并且最近支持了 TimeChaos 的新功能,用来模拟 Time skew 的情况,通常情况下,我们知道直接修在容器中修改时间,会影响整个物理节点, 这不是我们想要的,那么 Chaos Mesh 是如何解决这个问题的呢?接下来就让我们一起探索一下 Chaos Mesh 是如何在容器中让时间自由摇摆起来的! Time skew 是什么? Time Skew 直接翻译就是时间偏移,白话一点就是我们从节点上获取的时间和当前真实的时...阅读全文

简书 2020-03-24 00:32:44 CwenYin

Golang基础之切片

因为数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性。 例如: func arraySum(x [3]int) int{ sum := 0 for _, v := range x{ sum = sum + v } return sum } 这个求和函数只能接受[3]int类型,其他的都不支持。 再比如, a := [3]int{1, 2, 3} 数组a中已经有三个元素了,我们就不能再继续往数组a中添加新元素。 切片 切片(Slice)是一个拥有相同类型元素的可变长度的序列。...阅读全文

简书 2020-03-24 00:32:43 DevilRoshan

从零学习 Go 语言(02):学习五种变量创建的方法

Hi,大家好呀,我是一个刚学习 Go 语言不久的新手,在入门 Golang 的这段时间里,我写了很多详细的学习笔记,很适合新手学习噢。这些文章已经发布在我的个人微信公众号里:《Go编程时光》里,今天开始将文章内容搬运到这里,希望有更多的人看到,给更的人带来帮助,但是这里文章会相对滞后,想获取最新文章,可以前往关注《Go编程时光》,请放心关注,这是一个纯分享的号,完全没有广告。 **系列导读** [从零学习 Go 语言(01):一文搞定开发环境的搭建](https://studygolan...阅读全文

Go语言中文网 2020-03-23 22:21:07 hello_wbm

defer 链如何被遍历

去年开始写文章的第一篇就是关于 defer,名字比较文艺:《Golang 之轻松化解 defer 的温柔陷阱》,还被吐槽了。因为这篇文章,到《Go 夜读》讲了一期。不过当时纯粹是应用层面的,也还没有跳进 Go 源码这个大坑,文章看着比较清新,也没有大段的源码解析。 自从听了曹大在《Go 夜读》分享的 Go 汇编,以及研读了阿波张的 Go 调度器源码分析的文章后,各种源码、汇编满天飞…… 上次欧神写了一篇《Go GC 20 问》,全文也没有一行源码,整体读下来很畅快。今天这篇也来尝试一下这种写法,...阅读全文

博客园 2020-03-23 09:42 qcrao-2018

Golang:通过小程序获取微信 openid

为什么要获取小程序的 openid 在开发微信小程序的过程中,小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。那么这个用户身份标识就是 openid。 小程序获取 openid 的流程 那么小程序获取 openid 的流程具体如下,这里我简化了一下,因为我们只需要获取到 openid 即可,具体可以参考这里 我们需要在小程序中调用 wx.login() 获取 code 码,然后将这个 code 码发送给后端,后端带着这个 code 码和 appi...阅读全文

简书 2020-03-23 21:32:44 Rollover

优化 Golang 服务来减少 40% 以上的 CPU

十年前,谷歌正在面临一个由 C++ 编译时间过长所造成的严重瓶颈,并且需要一个全新的方式来解决这个问题。谷歌的工程师们通过创造了一种新的被称作 Go (又名 Golang)的语言来应对挑战。这个新语言 Go 带来了 C++ 最好的部分(最主要的是它的性能和稳定性),又与 Python 的速度相结合,使得 Go 能够在实现并发的同时快速地使用多核心。 在 Coralogix(译者注:一个提供全面日志分析的服务产品,[官网](https://coralogix.com/)),我们为了去给我们的...阅读全文

Go语言中文网 2020-03-23 21:08:13 shiluo

【Golang】通道channel

Java的并发:基于线程 Golang的并发:基于协程goroutine 并发会导致资源竞争:加锁 防止资源竞争的三种方式: 原子函数:atomic.LoadInt32,atomic.StoreInt32 互斥锁:mutex sync.Mutex, mutex.Lock(), mutex.Unlock() 通道:channel 通道Channel 声明 使用chan声明通道,并指明需要发送和接收的数据类型。例如: ch := make(chan int) 声明通道可以有第二个参数,用来指定通道大...阅读全文

简书 2020-03-23 19:32:48 冉小妹Ran

leetcode_68

Golang: 思路:刚开始看题会觉得有些麻烦,但实际上,也没啥技巧,就是处理字符串 代码如下: func fullJustify(words []string, maxWidth int) []string { var wordlist []string var res []string j,length:=0,0 for j<len(words){ if len(wordlist)==0{ wordlist=append(wordlist,words[j]) length+=len(word...阅读全文

简书 2020-03-23 19:32:47 淳属虚构

二叉搜索树的第k个结点

题目描述 给定一棵二叉搜索树,请找出其中的第k小的结点。例如, (5,3,7,2,4,6,8) 中,按结点数值大小顺序第三小结点的值为4。 思路 首先简单总结下二叉搜索树的性质。 若任意节点的左子树不空,则左子树上所有节点的值均小于它的根节点的值; 若任意节点的右子树不空,则右子树上所有节点的值均大于它的根节点的值; 任意节点的左、右子树也分别为二叉查找树; 没有键值相等的节点。 从二叉搜索树的性质可以看出,其中序遍历便是一个从小到大的排序。 设置一个count,每遍历一个数据便自增1,当cou...阅读全文

简书 2020-03-23 19:32:47 youzhihua

Golang问题点(二) - 结构体、方法和接口之间的千丝万缕

1. 结构体和方法之间 方法接收器是结构体的值与指针中的区别: package main import "fmt" type Person struct { Name string Age int } func (this Person) Call() { fmt.Println("啊啊啊") } func (this *Person) Touch() { fmt.Println("痒痒痒") } func main() { person := Person{ Name: "董小贱", Age:...阅读全文

简书 2020-03-23 19:32:47 董小贱

重新认识Go的Slice

开篇语 大多数时候我们都忘记了或者压根不知道slice是怎么工作的。大多数时候我们只是把slice当做动态数组来用。通过重新认识slice,我们可以一定程度上避免掉入slice的陷阱,并且更好的使用它。 参考资料有: Effective Go Go Slices: usage and internal 本文重点是代码例子,边动手边学习 回归本元: 什么是数组? Go中的数组(array)是一个固定大小的、单一类型的一个序列。 创建数组需要两个参数:size和type。 Array的size是类型...阅读全文

简书 2020-03-23 19:32:46 麻瓜镇

jQuery的first()方法怎么用?

first()方法是jQuery中的内置方法,用于选择从指定元件的第一个元素;它将匹配元素集合缩减为集合中的第一个元素。 原文地址:jQuery的first()方法怎么用?如果给定一个表示 DOM 元素集合的 jQuery 对象,.first() 方法会用第一个匹配元素构造一个新的 jQuery 对象。语法:$(selector).first()返回值:返回所选元素中的第一个元素。示例: <html> <head> <meta charset="UTF-8"> <script src="http...阅读全文

简书 2020-03-23 19:32:46 yanghs

git 设置和取消代理

学习golang,首先需要在 https://golang.org/dl/ 下载安装包,如果打不开可以使用这个地址:https://golang.google.cn/dl/在开发过程中,需要到github、goole code等网站,下载各种引入包,这个时候需要安装git,下载地址为 https://git-scm.com/科学上网后,GIt也需要设置,才能正常访问github、goole code等网站,go get 也会调用gitgit代理设置如下(可复制):git config --glo...阅读全文

简书 2020-03-23 19:32:43 陈树树go

【Golang源码系列】一:Map实现原理分析

作者:郭雨田 原文地址:https://mp.weixin.qq.com/s/c_... 一、map的结构与设计原理 golang中map是一个kv对集合。底层使用hash table,用链表来解决冲突 ,出现冲突时,不是每一个key都申请一个结构通过链表串起来,而是以bmap为最小粒度挂载,一个bmap可以放8个kv。在哈希函数的选择上,会在程序启动时,检测 cpu 是否支持 aes,如果支持,则使用 aes hash,否则使用 memhash。每个map的底层结构是hmap,是有若干个结构为...阅读全文

Segmentfault 2020-03-28 16:32:34 LNMPR源码研究