GO的第二天,赋值和类型

元组赋值 赋值,一听这个词,感觉什么都不用说了,就是简单!不过Go还提供了一个元组赋值。元组赋值是另一种形式的赋值语句,它允许同时更新多个变量的值。在赋值之前,赋值语句右边的所有表达式将会先进行求值,然后再统一更新左边对应变量的值。不BB,先看代码: // 交换两个变量的值 x, y = y, x a[i], a[j] = a[j], a[i] 计算两个整数值的的最大公约数(GCD) func gcd(x, y int) int { for y != 0 { x, y = y, x%y } re...阅读全文

Segmentfault 2020-03-09 11:32:33 Mr_J

数组中重复的数字

题目描述 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 思路 1.此问题可以使用一个萝卜一个坑的思路求解。 2.数组中的数字都在0~n-1的范围内,可以声明一个长度为n的布尔型数组。 3.从头开始遍历数组中的数字,每次先检查该数字的“坑”是否被占用,若占用,直接返回;若没占用,将这个“坑”占住即可。 例如:5+7 = 1100,第一...阅读全文

简书 2020-03-06 23:32:49 youzhihua

Golang基础(四) | 结构体

结构体 Go语言中,也和C或者其他语言一样,我们可以声明新的类型,作为其它类型的属性或字段的容器。例如,我们可以创建一个自定义类型person代表一个人的实体。这个实体拥有属性:姓名和年龄。这样的类型我们称之struct。如下代码所示: type person struct { name string age int } 声明一个struct如此简单,上面的类型包含有两个字段 一个string类型的字段name,用来保存用户名称这个属性 一个int类型的字段age,用来保存用户年龄这个属性 具体...阅读全文

简书 2020-03-06 23:32:48 youzhihua

GO基础笔记(一) defer详解

defer详解 defer是Golang一大语言特色,它扮演的是类似Java中finally的角色。用于执行释放资源的一些操作。 defer语句定义在函数内,后面跟一个函数,被defer的函数会在defer所在的函数结果前被执行。defer能够保证函数不管以何种方式结束(return或panic),被defer的函数一定被执行。 释放资源 defer可以被定义在函数中的任何地方,这意味着当我们打开一个资源,马上可以使用defer声明它的释放,这样我们在编写后面的代码的时候就不用操心这个资源的释放...阅读全文

简书 2020-03-06 23:32:47 一只爱编程的懒猫

一次golang程序无故频繁重启的问题

1. 错误日志 监控日志 程序启动时会打印进程号,同时有系统signal信号捕捉程序,会将程序退出的所有能捕捉的信号都捕捉并打印,然后退出。 1.1不能被捕捉的信号 SIGKILL 9 Term 无条件结束程序(不能被捕获、阻塞或忽略) SIGSTOP 17,19,23 Stop 停止进程(不能被捕获、阻塞或忽略) 第一个就是我们常见的kill -9 pid 2. 排查方式 1.1 查看日志 日志中加入了捕捉信号量的程序,会将程序退出的所有能捕捉的信号都捕捉并打印,然后退出 // for bui...阅读全文

简书 2020-03-06 23:32:47 天地一小儒

Golang中的局部变量“何时栈?何时堆?”

一、C/C++报错?Golang通过? 我们先看一段代码 package main func foo(arg_val int)(*int) { var foo_val int = 11; return &foo_val; } func main() { main_val := foo(666) println(*main_val) } 编译运行 $ go run pro_1.go 11 竟然没有报错! 了解C/C++的小伙伴应该知道,这种情况是一定不允许的,因为 外部函数使用了子函数的局部变量,...阅读全文

简书 2020-03-06 23:32:45 刘丹冰Aceld

与群里的朋友聊完之后,我将《企业级区块链实战教程》开源了

由于疫情,春节待在家里百无聊赖,我又启动了写书的进程。前后历时近一个月,我终于写完了《企业级区块链实战教程》。该课程与市面上区块链课程不同,不只是讲理论,可以说是目前市面最具实战精神的课程,吸取了《大话区块链》这本书的精华以及我在国家电网的项目实施经验。这门课程最大的特色是涉及了大量的实战内容,其中包含了联盟链网络的搭建、智能合约开发、区块链项目实施等内容。经过多次完善之后,我将课程简介发布在我的公众号以及《大话区块链》读者群。一个星期,许多朋友加我微信希望我能够学习《企业级区块链实战教程》。但...阅读全文

简书 2020-03-06 23:32:44 应平与你说未来

k8s容器编排

1.k8s集群的安装(kubeadm安装) 1.1 k8s的架构 从系统架构来看,k8s分为2个节点 Master 控制节点 指挥官 Node 工作节点 干活的 1.Master节点组成 API Server :提供k8s API接口 主要处理Rest操作以及更新Etcd中的对象 是所有资源增删改查的唯一入口。 Scheduler:资源调度器 根据etcd里的节点资源状态决定将Pod绑定到哪个Node上 Controller Manager 负责保障pod的健康存在 资源对象的自动化控制中心,K...阅读全文

简书 2020-03-06 23:32:43 唯爱熊

多线程笔记:同步机制(1)

同步机制简介 线程同步机制是一套用于协调线程间的数据访问及活动的机制,该机制用于保障线程安全以及实现这些线程的共同目标。 线程同步机制是编程语言为多线程运行制定的一套规则,合理地运用这些规则可以很大程度上保障程序的正确运行。 这套机制包含两方面的内容,一是关于多线程间的数据访问的规则,二是多线程间活动的规则。前者关乎程序运行的正确与否,是相当重要的内容;后者很大程度上是影响程序的运行效率,也是不容忽视的内容。不太严谨地说,数据访问的规则主要是由锁来实现,线程间活动的规则则表现线程调度上。 锁 线...阅读全文

简书 2020-03-06 23:32:41 辣条棒棒冰

DjanFey的基础库解读--io包

// io包提供了原始I/O的基础接口 // 它的主要工作是去包含这些原始I/O已经存在的实现 // 比如在os包中的这些,抽象出功能做成共享接口,加上其它相关的原始I/O // 因为这些接口和原始I/O包裹着各种各样的实现的低级操作,除非非常了解客户端否则不能假定他们是并发安全的 package my_io import "errors" // Seek值的来源 const ( SeekStart = 0 //seek对应文件的起始处 SeekCu...阅读全文

Go语言中文网 2020-03-06 22:54:36 DjanFy

TIOBE 发布 3 月编程语言榜单:Go 冲进前十,Delphi 没落

☞200页!分享珍藏很久的Python和Linux学习知识手册☜TIOBE 公布了2020年3月的编程语言排行榜TOP 20的榜单如下:C语言不愧是年度编程语言,以3.03%的年增长率继续大幅领先。年增长率较高的还有Java(2.90%)、C#(2.95%)和Python(1.85%)。整体上来看,排名前10的语言基本都稳定如常。本月冲出了Go 语言这匹黑马,一路挤进前十。去年同期,Go排在第18位,前两个月的榜单中,Go上升到第14位,然后持续爬升,终于在3月进入前十。本月最值得关注的语言比较...阅读全文

51CTO博客 2020-03-06 17:18:02 程序员SHZ

Golang中的局部变量“何时栈?何时堆?”

一、C/C++报错?Golang通过? 我们先看一段代码 package main func foo(arg_val int)(*int) { var foo_val int = 11; return &foo_val; } func main() { main_val := foo(666) println(*main_val) } 编译运行 $ go run pro_1.go 11 竟然没有报错! 了解C/C++的小伙伴应该知道,这种情况是一定不允许的,因为 外部函数使用了子函数的局部变量,...阅读全文

Segmentfault 2020-03-09 09:32:35 aceld

你的DevOps中有完善的持续交付体系么?

背景:DevOps已经成为软件开发领域一个炙手可热的名词。敏捷开发、持续交付、CI/CD,K8s…这些主流的开发理念、工具无一例外都与DevOps有着很强的联系。这种环境影响下,传统的运维团队均开始向DevOps进行转型。一时之间运维开发、SRE、工程效能工程师需求量大增,无论公司大小,都会开始着手DevOps的从0到1的建设。我们开始搭建工具链、部署流水线、集成自动化测试工具、开发自动化发布系统……一切的一切都是为了完善我们自动化体系,从而提高开发效率,优化产品质量。那么问题来了,你团队所建设...阅读全文

Go语言中文网 2020-03-06 19:17:38 JFrogChina

《四嗮小博客》开发说明

简介 《四嗮小博客》是一款采用Golang开发的博客程序,它只包含最基本的博客发布功能,评论模块采用搜狐畅言模块。 为什么 为什么这个博客程序只有这么少的功能?因为对我来说,能有一个地方独立发布博客就行了,然后还满足了自己的修改欲望。 之前也采用Wordpress等架设博客,但是太庞大,耗资源,老是被服务商停机。正好Golang是一个能快速开发的语言,采用Gin框架,我3天就写好了这个功能。 将来 将来要加什么功能,还不知道!阅读全文

Segmentfault 2020-03-08 20:32:32 4color

一位 Rust 开发者的 Go 初体验

作者介绍:Nick Cameron,PingCAP 研发工程师,Rust 语言核心成员。 感谢 Rust 语言中文社区伙伴们的翻译和审校: 翻译:尚卓燃 审校:吴聪、张汉东 过去几周,我一直在用 Go 语言编写程序。这是我首次在大型且重要的项目中使用 Go。在研究 Rust 的特性时,我也看了很多关于 Go 的内容,包括体验示例和编写玩具程序。但真正用它编程又是一种完全不同的体验。 我觉得把这次体验写下来应该会很有趣。在这篇文章中,我会尽量避免将 Go 与 Rust 进行过多的比较,不过,由于我...阅读全文

Segmentfault 2020-03-08 19:32:33 PingCAP

beego的安装以及bee的安装和使用

beego的安装以及bee的安装和使用 一、beego的安装 1.beego是什么 beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API、Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计灵感来源于 tornado、sinatra 和 flask 这三个框架,但是结合了 Go 本身的一些特性(interface、struct 嵌入等)而设计的一个框架。 2.beego的安装 beego 的安装是典型的 Go 安装包的形式: go get git...阅读全文

Segmentfault 2020-03-08 18:32:33 墨戈

一篇文章理解 golang 中切片与数组的关系

起始 在 golang 文档中,对数组与切片有一些详细的讲解,本文主要讲解数组与切片的关系 由于是个人理解,可能有些偏差,烦请指正 数组 golang 的数组比较简单,我们理解几个概念即可 数组是固定长度与容量,并且具有相同类型的一组值 此定义的数组长度为 5 ,那么容量也会固定为 5 数组的索引都是从 0 开始的 记住,我们在此定义了一个 int 类型的数组,长度容量均为 5,在后面的切片讲解中,我们将对此数组进行切片 // 此定义的数组长度为 5 ,那么容量也会固定为 5 arr := [5...阅读全文

Segmentfault 2020-03-08 16:32:33 enda