Go语言中文网 为您找到相关结果 165

leetcode_141

Golang: 思路:这道题是我在刷题的早期遇见的题,当时的思路是用map记录跑过的点,如果有环,那么指针终归会经过map里的点。但是,这个思路不是最好的思路,很明显,快慢指针才是解决这个问题的王道。什么是快慢指针,就是双指针,一个指针每次走两步,另一个每次走一步,那么如果有环,快指针势必会追上慢指针。 小记:最近因为有其他事情,所以会耽误自己刷题,希望自己还是能尽量抽出闲暇时间来写写leetcode和算法。 代码如下: func hasCycle(head *ListNode) bool { if head==nil||head.Next==nil{ return false } pointer1,pointer2:=head,head for { if pointer2.Next!=ni...阅读全文

博文 2020-02-10 05:32:38 淳属虚构

推荐一个go语言笔记

推荐一个Go语言笔记 github.com/qyuhen/book $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('

    ').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('
  • ').text(i)); }; $numbering...阅读全文

博文 2016-03-18 13:00:02 qq_15437667

Linux 入门手册 ——《鸟哥的 Linux 私房菜》

对 Linux 的了解一直停留在简单的 command line 层面,比如 ls 能列出所有当前文件夹下的文件和文件夹,但这个功能是怎么实现的?能不能自己定义命令来简化日常的工作?在安装完一个软件后,安装在里哪里?比如说安装完了 node, 为什么在终端能使用 npm 指令了?在/目录下有 /bin, /var, /etc, /home, /dev 等文件夹,这些文件夹都是做什么用的?为什么要按照这种方式划分?有很多类似于这一类的关于 Linux 操作系统的问题一直得不到解答,有时花了不少时间才能解决一个小问题,所以这段时间就将操作系统的学习提上了议程。 要比较全面的了解新的知识,最好的办法还是读书。因为入门的书籍更侧重的是广度,通常内容不会太难,但是基本能囊括需要了解的知识点,之后如果想...阅读全文

博文 2018-11-22 05:34:40 闭眼卖布

Bytomd 助记词恢复密钥体验指南

比原项目仓库: Github地址:https://github.com/Bytom/bytom Gitee地址:https://gitee.com/BytomBlockc... 背景知识 Bytom 使用的 密钥类型为基于 ed25519 的 chainkd.XPub 代码见 bytom/crypto/ed25519/chainkd 文档见 https://chain.com/docs/1.2/pr...` 预备 代码修改 首先适当修改代码,添加一些打印输出,使得我们更好的进行验证。 如果只是想看 xpub ,而不关心 xprv(对于验证导入导出助记词功能来说已经够了)的话可以跳过这一步,不必修改源码 。 在 bytom/blockchain/pseudohsm/pseudohsm.go 中...阅读全文

博文 2018-10-08 10:34:45 比原链Bytom

go语言学习笔记11

package main import "fmt" func main() { f() fmt.Println("Returned normally from f.") } func f() { defer func() { if r := recover(); r != nil { fmt.Println("Recovered in f", r) } }() fmt.Println("Calling g.") g(0) fmt.Println("Returned normally from g.") } func g(i int) { if i > 3 { fmt.Println("Panicking!") panic(fmt.Sprintf("%v", i)) } defer fmt.P...阅读全文

博文 2015-06-17 23:02:29 lwj1396

golang and mogodb

1、golang的mogodb包下载:http://gopkg.in/mgo.v2 http://gopkg.in/mgo.v2/bson 2、golang的mongodb操作(mgo):https://studygolang.com/articles/1737 3、mgo 的 session 与连接池:http://www.cnblogs.com/logo-fox/p/7016017.html 4、Mongodb学习笔记:http://www.cnblogs.com/eggTwo/p/4040252.htm...阅读全文

博文 2017-11-14 12:00:05 cythical-l-zc

Golang package中init方法的执行顺序问题

总结一下init方法的定义和执行顺序,做个笔记 在同一个go文件中,可以定义多个init方法 在同一个文件中的多个init方法,按照在代码中编写的顺序依次执行不同的init方法 在同一个package中,可以多个文件中定义init方法 在同一个package中,不同文件中的init方法的执行按照文件名先后执行各个文件中的init方法 // A/a1.go package A func init() { println("a1") } var A1 = "" // A/a2.go package A func init() { println("a2") } var A2 = "" // B/b1.go package B func init() { println("b1") } var B...阅读全文

博文 2019-06-21 21:32:41 JiBadBoy

Advanced Go读书笔记

一、 语言基础 main.main函数执行过程 image.png slice底层数组部分通过隐式指针传递(指针本身是传值的,只是指向的是同一份数据而已),被调函数通过指针修改调用参数slice底层数组中的数据。但是slice本身是要维护其对应的数据结构的,例如,长度和容量。另外,在slice底层数组扩容时,其指向的底层数组也会发生改变。因此,像append这种操作必须要返回一个slice的原因。 3.golang中函数的递归调用深度逻辑上没有限制,函数调用栈是不会出现溢出错误的,因为golang在运行时会根据需要动态地调整函数栈的大小。每个goroutine刚启动时只会分配很小的栈(4KB或8KB),根据需要动态调整栈的大小,栈最大可以达到GB级别。 image.pn...阅读全文

(四)GoLang小记 —— 中文编程

什么,GoLang 也能写中文代码?是的, 你没看错! (编译版本) 请将如下代码复制到您的IDE后直接运行; package main import ( "fmt" ) type 老爸 struct { 力量 string 高大 string } type 老妈 struct { 聪明 string 细心 string } type 儿子 struct { 老爸 老妈 } func main() { var 儿子对象 = 儿子{老爸{"我有力量","我长得高"},老妈{"我很聪明","我很细心"}} fmt.Println("s.力量:",儿子对象.力量) fmt.Println("s.高大:",儿子对象.高大) fmt.Println("s.聪明:",儿子对象.聪明) fmt.Print...阅读全文

博文 2016-10-19 11:00:13 水果糖

关于Golang和JVM中并发模型实现的探讨

说起来貌似有好久没有更新过博客了,主要是因为最近一段时间都在各种看书和看源码,所做的记录大部分也都是属于读书笔记性质,所以就没有整理到博客上来,之后会陆续整理一些东西上来。http://www.jxedt.com/wen/yueche/3170230162160615478.html http://www.jxedt.com/wen/yueche/3170230170922909778.html http://www.jxedt.com/wen/yueche/3170230228733788214.html http://www.jxedt.com/wen/yueche/3170230233200984146.html http://www.jxedt.com/wen/yueche/3170...阅读全文

博文 2016-10-12 19:00:06 wangwei5155

开始学golang: helloWorld

我要学golang 用简书也有一段时间了, 好像自己一直都是一个拿来主义者, 这样不好. 以前没有想法把自己所学的东西发表的网络上, 因为觉得自己的文笔不好, 所以害怕被人指出毛病.这也导致自己用很多重要的学习感受没有记录下来, 现在想想, 还是有点遗憾的. 其实换一个角度思考, 被人指出缺点才能有所进步, 所以自己下定决心, 在学这门新的语言开始之时做一些改变, 把自己的学习笔记记录下来(可能没有人看,没关系), 希望那些看到的人能够指出我的知识上的缺点以及错误, 或者更好的理解方法, 大家一起进步. 好开始吧...阅读全文

博文 2018-11-19 02:34:38 陈卧虫

leetcode刷题笔记(Golang)--14. Longest Common Prefix

题链接14. Longest Common Prefix Write a function to find the longest common prefix string amongst an array of strings. If there is no common prefix, return an empty string "". Example 1: Input: ["flower","flow","flight"] Output: "fl" Example 2: Input: ["dog","racecar","car"] Output: "" Explanation: There is no common prefix among the input strings. No...阅读全文

博文 2020-02-08 01:32:44 煮酒_zzh

Kubernetes笔记(3)—— kubectl和cobra

kubectl是控制k8s clustet manager的命令行工具: $ kubectl kubectl controls the Kubernetes cluster manager. Find more information at https://github.com/kubernetes/kubernetes. Usage: kubectl [flags] kubectl [command] Available Commands: get Display one or many resources describe Show details of a specific resource or group of resources ...... kubectl使用了cobra这个项...阅读全文

博文 2017-06-24 19:21:02 肖楠

手把手教你,COS公链互动操作!

作为领先的内容公链,COS公链的代码全部开源免费。开源地址:https://github.com/coschain/ 看过上一篇文章《0基础,开启COS公链本地化运行》的朋友,相信已经在本地搭建了COS公链。这次,我们开启COS公链互动模式,看看都有哪些好玩儿的互动? 区别于中心化的内容平台,Contentos内容生态里的账户系统分为“本地账户”和“链上账户”两种。 本地账户是一份 keystore 文件,放置在 ~/.coschain文件夹下。一个本地账户存储了一对 contentos 的公私钥,这个keystore 文件可以被 wallet 创建或者导入。 一份本地的 keystore 文件类似如下: { "Name":"testuser", "PubKey":"COS745h9zeER...阅读全文

博文 2019-11-20 17:02:45 内容链Contentos

golang开发笔记

同时用多种语言开发前后端、移动端难免会混乱记不清API,所以golang开发中遇到的小问题都会慢慢在此笔记中添加。 文件和目录操作 得到当前程序的运行目录 if dir, err := filepath.Abs(filepath.Dir(os.Args[0])); err == nil { } 使用go run 运行的程序的路径是在一个临时目录中。 使用go build得到的可执行文件运行才会得到真正的当前目录。 创建目录 //创建目录 os.Mkdir(dir, os.ModeDir) //创建多级目录 os.MkdirAll(dir, os.ModePerm) 写文件 //简单的写文件API。必须添加os.ModePerm,否则在mac中双击打开文件时会提示没有权限, //显示简介中可以...阅读全文

博文 2018-09-12 23:34:39 云上听风

go语言

【译】GOPATH 的默认值 "翻译自 Go 语言作者的博客。这只是设置了 GOPATH 默认值,GOROOT 还是得自己设置。" 从 Go 1.8 开始,如果 GOPATH 的环境变量为空,Go 将会设置一个默认的 GOPATH 环境变量。 Go 初学者第一次安装完 Go 之后,他们往往会因为忘记设置 GOPATH 环境变量而得到 you … Go 1.9 发布,包含语言,标准库,以及运行时的诸多变化 今天Go团队很高兴地宣布发布1.9版本。现可供下载。发行说明中最突出得的是包含语言,标准库,以及运行时的诸多变化。这个版本中的大部分工作都是对运行时和工具的改进。 GO 语言学习资源整理 作者整理的 Go 语言的学习资源,包括几个方面:1)在线学习教程:比较系统全面,非常适合新手入门学习;2...阅读全文

记录最近的一些事情

时间好快啊,转眼来上海已经四年了~ 工作 公司转了技术栈,开始从PHP转战Java,正好也是一个学习Java的机会,相对于PHP来说,Java写起来真的很繁琐,不过谁让人家强类型语言呢,方便快捷真的PHP优势。开发语言,根据公司当前的业务发展和需求来定,比其他的没啥意义。 每天加不完的班,写不完的代码,改不完的bug???? 生活 终于告别了集体宿舍的生活,租了自己的小卧室,是计划了很久很久的事情。 杂乱的书桌 买了几盆绿植,买了书桌、台灯,生活好像比以前美好了很多,TT 学习 写好Java 对Golang有很大的好感,空闲时间也研究一些Golang的东西。 懒散的背单词中... 学的东西蛮多,但很容易忘记,要善于记笔记和总结。记笔记真的很重要!!! 两个想法 1、最近快压制不住想重新学习吉...阅读全文

博文 2018-08-24 04:34:48 zyda

目标这个系列的目的是为了帮助java开发更好的学习go这门语言,go是一门非常精炼的编译型语言。但对于学习成本来说,个人感觉还是c++程序员会觉得更亲切。不是go技术课本这个系列并不是go的完整技术入门书籍,更类似读书笔记。在这里也推荐一些系列做辅助理解。build-web-application-with-golang(中文版)go标准库理解实例适合谁来看这个系列非常适合作为有一定经验的java程序员转型go时的一本读物。在学习基础语法觉得枯味时,看看这个系列,都是从java开发视角的一些总结。可以更好的帮助理解以及掌握go这门语言。无论是否有c,c++基础...阅读全文

Go语言实战笔记(五)| Go 切片

《Go语言实战》读书笔记,未完待续,欢迎扫码关注公众号flysnow_org,第一时间看后续笔记。 切片也是一种数据结构,它和数组非常相似,因为他是围绕动态数组的概念设计的,可以按需自动改变大小,使用这种结构,可以更方便的管理和使用数据集合。 内部实现 切片是基于数组实现的,它的底层是数组,它自己本身非常小,可以理解为对底层数组的抽象。因为机遇数组实现,所以它的底层的内存是连续非配的,效率非常高,还可以通过索引获得数据,可以迭代以及垃圾回收优化的好处。 切片对象非常小,是因为它是只有3个字段的数据结构:一个是指向底层数组的指针,一个是切片的长度,一个是切片的容量。这3个字段,就是Go语言操作底层数组的元数据,有了它们,我们就可以任意的操作切片了。 声明和初始化 切片创建的方式有好几种,我们先...阅读全文

博文 2017-04-10 02:22:13 飞雪无情flysnow_org

Effective Go小记一

英文原文:https://docs.huihoo.com/go/golang.org/doc/effective_go.html 阅读小记: 1、go语言使用gofmt统一编码风格,包括排列和缩进。 2、关于注释,文章建议每个package子句之前都应该有关于包的说明,每个方法之前同样要对该方法进行说明;以方便godoc抽取相关内容并展示。 3、命名在go中非常重要,比如首字母是否大写决定在程序包之外的可见性。文章建议包名字均使用小写,力求简洁,包本身是根据路径选择源路径,若包名冲突,可在程序中将冲突的包重命名。 另外,文件对传统上的getter和setter做了自己的观点,认为getter不需要加Get关键字,当然setter加Set关键字是合理的...阅读全文

博文 2019-04-14 22:34:44 Zhang小二

4. golang的整数和浮点数以及bool类型

一, 整数 整数,就是存放整数值的,如0, -1, 800等 整数的类型: 类型 有无符号 占用存储空间 值范围 备注 int8 有 1字节 -2^7 ~ 2^-1 int16 有 2字节 -2^15 ~ 2^15 -1 int32 有 4字节 -2^31 ~ 2^31 -1 int64 有 8字节 -2^63 ~ 2^63 -1 uint8 无 1字节 0 ~ 2^8 - 1 uint16 无 2字节 0 ~ 2^16 - 1 uint32 无 4字节 0 ~ 2^32 - 1 uint64 无 8字节 0 ~ 2^64 - 1 int 有 32位系统4个字节 64位系统8个字节 参考int32和int64 uint 无 32位系统uint32 64系统uint64 参考uint32和ui...阅读全文

博文 2020-01-22 17:32:44 瓦灯_c6f0

今日coding随记

今天晚上学了go语言,通过浏览印象笔记中记的相关笔记,还仔细阅读了陈皓极客时间和他coolshell的相关文章。然后把菜鸟教程的go语言学习了一下并做了笔记。用vim写了一个shell脚本并编译运行,最后下载了jetbrains出品的goland IDE。go结合了c和python的优点,语法上更像c(从我接触的2种语言:c和python中比较来说)。go的语法特性上也和一般语言上差不多,有一些增改,如判断循环语句中的select和goto。开发高并发系统用go吧。Google也在支持golang。目前比较出名的应用:docker、区块链pass平台是一个有巨大潜力的方向,它适合用golang来写,目前金融业和通讯业对这一方向的认知和理解先于互联网公司。互联网公司是时候加入了。虚拟化技术产品...阅读全文

博文 2019-04-25 00:34:40 琳_6a42

Swarmkit笔记(13)——swarmctl通过controlClient向swarm cluster发命令

swarmctl实质上是通过controlClient向swarm cluster发命令。controlClient定义在api/control.pb.go: // Client API for Control service type ControlClient interface { GetNode(ctx context.Context, in *GetNodeRequest, opts ...grpc.CallOption) (*GetNodeResponse, error) ListNodes(ctx context.Context, in *ListNodesRequest, opts ...grpc.CallOption) (*ListNodesResponse, error)...阅读全文

博文 2017-06-25 14:09:14 肖楠

leetcode刷题笔记(Golang)--7. Reverse Integer

题链接7. Reverse Integer Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123 Output: 321 Example 2: Input: -123 Output: -321 Example 3: Input: 120 Output: 21 Note: Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231, 231 − 1]. For the purpose of this pro...阅读全文

博文 2020-02-06 22:32:41 煮酒_zzh

关于go泛型萃取简记

最近由于代码需要,需要在一个map中存泛型,例如: var data map[string] interface{} = make(map[string]interface{}) 然后通过关键字索引查询得到map对应key,大致方法是: func Get(name string, pval interface{}) error 当然,上面的pval传入的是指针,这样才能正确将值设置到pval指针中并返回给上层。 在C++中,经常也有类似的需求,但是C++由于有比较清晰的继承,所以在C++代码中使用泛型可以很容易处理这种需求,在这里不再赘述。 所以在考虑如何优雅的实现上述接口函数,于是翻阅了下golang的reflect,使用映射,可以完美实现,这种方法可以推广到很多其他形式,来处理go的泛型...阅读全文

博文 2019-06-16 18:32:42 hijiang

Go语言实战笔记(十五)| Go 并发示例-Runner

《Go语言实战》读书笔记,未完待续,欢迎扫码关注公众号flysnow_org,第一时间看后续笔记。觉得有帮助的话,顺手分享到朋友圈吧,感谢支持。 这篇通过一个例子,演示使用通道来监控程序的执行时间,生命周期,甚至终止程序等。我们这个程序叫runner,我们可以称之为执行者,它可以在后台执行任何任务,而且我们还可以控制这个执行者,比如强制终止它等。 现在开始吧,运用我们前面十几篇连载的知识,来构建我们的Runner,使用一个结构体类型就可以。 123456789//一个执行者,可以执行任何任务,但是这些任务是限制完成的,//该执行者可以通过发送终止信号终止它type Runner struct { tasks []func(int) //要执行的任务 complete chan error /...阅读全文

博文 2017-08-26 09:44:10 飞雪无情

leetcode刷题笔记(Golang)--16. 3Sum Closest

题链接16. 3Sum Closest Given an array nums of n integers and an integer target, find three integers in nums such that the sum is closest to target. Return the sum of the three integers. You may assume that each input would have exactly one solution. Example: Given array nums = [-1, 2, 1, -4], and target = 1. The sum that is closest to the target is 2....阅读全文

博文 2020-02-08 01:32:41 煮酒_zzh

golang笔记之指针使用

Choosing a value or pointer receiver There are two reasons to use a pointer receiver. The first is so that the method can modify the value that its receiver points to. The second is to avoid copying the value on each method call. This can be more efficient if the receiver is a large struct, for example. package main import ( "fmt" "math" ) type Ver...阅读全文

博文 2019-05-07 13:35:10 月下独酌100

Swarmkit笔记(12)——swarmctl创建service时指定资源限制

swarmctl创建service时可以指定CPU和memory资源限制: # swarmctl service create --help Create a service Usage: swarmctl service create [flags] Flags: ...... --cpu-limit string CPU cores limit (e.g. 0.5) --cpu-reservation string number of CPU cores reserved (e.g. 0.5) ...... --memory-limit string memory limit (e.g. 512m) --memory-reservation string amount of reserv...阅读全文

博文 2017-06-25 14:08:59 肖楠

Docker 的常用命令--《深入浅出Docker》的读书笔记

目录 1. 常用命令 2. 常用 命令示例 3. Docker简介 1. 常用命令 # 1. 常用命令 $ docker version # 查看安装是否成功,是否可以正常使用 $ docker image ls # 查看本地镜像列表 $ docker container ls # 查看运行的容器 $ docker pull ubuntu:latest # 将镜像ubuntu:latest拉取到本地 $ docker container run -it ubuntu:latest # 从镜像启动容器ubuntu:latest $ docker container exec -it ubuntu:latest # 连接到刚刚退出的仍然运行的容器ubuntu:latest $ ctrl + QP...阅读全文

Delve代码分析笔记(4)——构建command tree

Delve使用cobra来构造command tree。先看root command,也就是dlv: func New() *cobra.Command { ...... // Main dlv root command. RootCommand = &cobra.Command{ Use: "dlv", Short: "Delve is a debugger for the Go programming language.", Long: dlvCommandLongDesc, } RootCommand.PersistentFlags().StringVarP(&Addr, "listen", "l", "localhost:0", "Debugging server listen ad...阅读全文

博文 2017-06-25 13:58:35 肖楠

Delve代码分析笔记(2)——version

Version包只包含了一个version.go: package version import "fmt" // Version represents the current version of Delve. type Version struct { Major string Minor string Patch string Metadata string Build string } var ( // DelveVersion is the current version of Delve. DelveVersion = Version{Major: "0", Minor: "11", Patch: "0", Metadata: "alpha"} ) func (v Version...阅读全文

博文 2017-06-25 13:58:21 肖楠

golang笔记

go中数组长度不同无法进行比较,数组长度也是数组的组成部分; 指向数组的指针和指针数组:指向数组的指针是取数组的引用,指针数组是引用&作为数组中的值; 数组是值类型传递copy,切片是引用类型; function传递参数时,int、...int、string等类型传递的是值(copy),传切片是传递地址,直接改变原来的值...阅读全文

博文 2019-07-18 19:32:39 honkkki

Kubernetes笔记(5)—— kubernetes layout

Node(也称之为minion)运行docker container,而master则负责调度管理这些container。 Master运行下列服务: API Server—nearly all the components on the master and nodes accomplish their respective tasks by making API calls. These are handled by the API Server running on the master. Etcd—Etcd is a service whose job is to keep and replicate the current configuration and run state o...阅读全文

博文 2017-06-24 19:21:20 肖楠

Go语言实战笔记(十)| Go 嵌入类型

《Go语言实战》读书笔记,未完待续,欢迎扫码关注公众号flysnow_org,第一时间看后续笔记。 嵌入类型,或者嵌套类型,这是一种可以把已有的类型声明在新的类型里的一种方式,这种功能对代码复用非常重要。 在其他语言中,有继承可以做同样的事情,但是在Go语言中,没有继承的概念,Go提倡的代码复用的方式是组合,所以这也是嵌入类型的意义所在,组合而不是继承,所以Go才会更灵活。 123456789101112131415161718192021222324252627type Reader interface { Read(p []byte) (n int, err error)}type Writer interface { Write(p []byte) (n int, err error)...阅读全文

博文 2017-08-26 09:39:46 飞雪无情

《Go 语言程序设计》读书笔记 (一)基础类型和复合类型

前言 最近在读《Go 语言程序设计》这本书想通过看书巩固一下自己的基础知识,把已经积累的点通过看书学习再编织成一个网,这样看别人写的优秀代码时才能更好理解。当初工作中需要使用 Go开发项目时看了网上不少教程,比如 uknown 翻译的《the way to go》看完基本上每次使用遇到不会的时候还会再去翻阅,这次把书中的重点还有一些平时容易忽视的Go语言中各种内部结构(类型、函数、方法)的一些行为整理成读书笔记。 因为《Go 语言程序设计》不是针对初学者的,所以我只摘选最重要的部分并适当补充和调换描述顺序力求用最少的篇幅描述清楚每个知识点。 《Go 语言程序设计》在线阅读地址:https://yar999.gitbooks.io/go... 如果刚接触 Go建议先去读 《the-way-to...阅读全文

博文 2019-12-15 12:32:39 KevinYan

《Go 语言程序设计》读书笔记 (一)基础类型和复合类型

前言 最近在读《Go 语言程序设计》这本书想通过看书巩固一下自己的基础知识,把已经积累的点通过看书学习再编织成一个网,这样看别人写的优秀代码时才能更好理解。当初工作中需要使用 Go开发项目时看了网上不少教程,比如 uknown 翻译的《the way to go》看完基本上每次使用遇到不会的时候还会再去翻阅,这次把书中的重点还有一些平时容易忽视的Go语言中各种内部结构(类型、函数、方法)的一些行为整理成读书笔记。 因为《Go 语言程序设计》不是针对初学者的,所以我只摘选最重要的部分并适当补充和调换描述顺序力求用最少的篇幅描述清楚每个知识点。 《Go 语言程序设计》在线阅读地址:yar999.gitbooks.io/gopl-zh/con… 如果刚接触 Go建议先去读 《the-way-to-...阅读全文

博文 2019-12-16 00:34:14 kevinyan

【Go学习笔记】6、数组array

数组array 定义数组的格式:var [n] , n >= 0 数组长度也是类型的一部分,因此具有不同长度的数组为不同类型 注意区分指向数组的指针和指针数组 数组在Go中为值类型 数组之间可以使用== 或者 != 进行比较,但不可以使用<或> 可以使用new来创建数组,此方法返回一个指向数组的指针 Go支持多维数组 12345678910111213141516171819202122232425//多维数组定义func main (){ numbers := [2][3] int { {1,2,3}, {4,5,6} }}//冒泡func main() { numbers := [10]int{1, 6, 33, 23, 77, 133, 222, 333, 2, 111} for i ...阅读全文

博文 2017-05-30 05:09:48 HundredLee

Go语言实战笔记(十四)| Go 通道

《Go语言实战》读书笔记,未完待续,欢迎扫码关注公众号flysnow_org,第一时间看后续笔记。觉得有帮助的话,顺手分享到朋友圈吧,感谢支持。 上一篇我们讲的原子函数和互斥锁,都可以保证共享数据的读写,但是呢,它们还是有点复杂,而且影响性能,对此,Go又为我们提供了一种工具,这就是通道。 所以在多个goroutine并发中,我们不仅可以通过原子函数和互斥锁保证对共享资源的安全访问,消除竞争的状态,还可以通过使用通道,在多个goroutine发送和接受共享的数据,达到数据同步的目的。 通道,他有点像在两个routine之间架设的管道,一个goroutine可以往这个管道里塞数据,另外一个可以从这个管道里取数据,有点类似于我们说的队列。 声明一个通道很简单,我们使用chan关键字即可,除此之外...阅读全文

博文 2017-08-26 09:43:12 飞雪无情

Docker Swarm代码分析笔记(16)——Node结构体

Docker Swarm的scheduler会选择符合要求的node来创建container: candidates, err := s.selectNodesForContainer(nodes, config, true) node定义在scheduler/node/node.go: // Node is an abstract type used by the scheduler. type Node struct { ID string IP string Addr string Name string Labels map[string]string Containers cluster.Containers Images []*cluster.Image UsedMemory i...阅读全文

博文 2017-06-25 14:02:45 肖楠

《微服务架构设计模式》读书笔记---第十一章:开发面向生产环境的微服务应用

为了部署到生产环境中,需要考虑三个关键的质量属性:安全性,可配置性和可观测性。 开发安全的服务 需要实现安全性的四个方面: 身份验证。 访问授权。验证是否允许访问主体对指定数据完成请求的操作。 审计。跟踪用户在应用中执行的操作。 安全的进程间通信。最好采用传输层安全性(TLS)加密。 在微服务架构中实现安全性 由API Gateway处理身份验证。在请求转发给服务之前,就进行身份验证。这样的好处是: 身份验证集中于一个服务,安全漏洞的可能性要小的多。 身份验证集中于一个服务,其他服务更简单,更关注于自己的业务。 除了身份验证,还需要考虑访问授权。可能实现的位置: API Gateway。在这里实现的好处是,集中管理,弊端是API Gateway和服务之间产生耦合 在各个服务,实现访问授权。 ...阅读全文

golang分布式存储 读书笔记(2)——流操作之PutStream封装

接着上一篇的golang分布式存储 读书笔记(1)——流操作之GetStream封装,这次要讲的是上传文件并保存,使用restful的PUT方法,书中封装了PutStream结构。 接口设计 客户端上传数据时向接口服务器发送PUT请求,请求的url为/objects/。 同样接口服务器向数据服务器转发PUT请求,请求的url为/objects/。数据服务器在本地指定文件夹(D:/objects/)下创建文件,将PUT的内容写入文件中。 目录结构 在GOPATH/src目录下,目录结构为: go-storage apiServer objects get.go put.go apiServer.go dataServ...阅读全文

博文 2019-02-08 21:34:42 StormZhu

Golang笔记03《Go程序设计语言》第一章入门

《Go程序设计语言》第一章入门 永痕的Hello World package main import "fmt" func main(){ fmt.Println("Hello World") } 输入命令 go run hello.go,如果您输入的程序是正确的,那么会输出 Hello World 这就是go语言的最简单的最基础的代码,但是我们需要注意的事情是: 简单的事情不代表不重要 简单的事情不代表不重要 简单的事情不代表不重要 重要的事情说三次 end.....阅读全文

博文 2019-06-14 23:32:43 我加入简书的路程

leetcode刷题笔记(Golang)--15. 3Sum

题链接15. 3Sum Given an array nums of n integers, are there elements a, b, c in nums such that a + b + c = 0? Find all unique triplets in the array which gives the sum of zero. Note: The solution set must not contain duplicate triplets. Example: Given array nums = [-1, 0, 1, 2, -1, -4], A solution set is: [ [-1, 0, 1], [-1, -1, 2] ] 解题思路:转化为n个2sum问题 f...阅读全文

博文 2020-02-08 01:32:42 煮酒_zzh