Go 入门指南(The way to Go)7.1 声明和初始化 7.1.1 概念 7.1.2 数组常量 7.1.3 多维数组 7.1.4 将数组传递给函数 7.1.1 概念 数组是具有相同 唯一类型 的一组已编号且长度固定的数据项序列(这是一种同构的数据结构);这种类型 可以是任意的原始类型例如整形、字符串或者自定义类型。数组长度必须是一个常量表达式,并且必须是 一个非负整数。数组长度也是数组类型的一部分,所以[5]int len(arr1)-1 。 第一个元素是 arr1[0] ,第三个元素是 arr1[2] ;总体来说索引 i 代表的元素是 arr1[i] ,最后一个元素 是 arr1[len(arr1)-1] 。 对索引项为 i 的数组元素赋值可以这么操作: arr[i] = value ,所以数组是 可变的。 只有有效的索引可以被使用,当使用等于或者大于 len(arr1) 的索引时:如果编译器可以检测到,会给出 中的数组类型,或者 Python 中的 list 类型)。这个片段可以是整 个数组,或者是由起始和终止索引标识的一些项的子集。需要注意的是,终止索引标识的项不包括在切片 内。切片提供了一个相关数组的动态窗口。 切片是可索引的,并且可以由 len() 函数获取长度。 给定项的切片索引可能比相关数组的相同元素的索引小。和数组不同的是,切片的长度可以在运行时修 改,最小为 0 最大为相关数组的长度:切片是一个0 码力 | 380 页 | 2.97 MB | 1 年前3
Go 入门指南(The way to Go)@songleo 除特别声明外,本书中的内容使用 CC BY-SA 3.0 License(创作共用 署名-相同方式共享3.0 许可协议)授 权,代码遵循 BSD 3-Clause License(3 项条款的 BSD 许可协议)。 授权许可 阅前必读 - 9 - 本文档使用 书栈(BookStack.CN) 构建 内容介绍 在接触 Go 语言之后,对这门编程语言非常着迷,期间也陆陆续续开始一些帮助国内编程爱好者了解和发展 本文档使用 书栈(BookStack.CN) 构建 1.1 起源与发展 Go 语言起源 2007 年,并于 2009 年正式对外发布。它从 2009 年 9 月 21 日开始作为谷歌公司 20% 兼职项 目,即相关员工利用 20% 的空余时间来参与 Go 语言的研发工作。该项目的三位领导者均是著名的 IT 工程师: Robert Griesemer,参与开发 Java HotSpot 虚拟机;Rob 2011 年 5 月 5 日:Google App Engine 支持 Go 语言 从 2010 年 5 月起,谷歌开始将 Go 语言投入到后端基础设施的实际开发中,例如开发用于管理后端复杂环境的项 目。有句话叫 “吃你自己的狗食”,这也体现了谷歌确实想要投资这门语言,并认为它是有生产价值的。 Go 语言的官方网站是 golang.org,这个站点采用 Python 作为前端,并且使用 Go0 码力 | 466 页 | 4.44 MB | 1 年前3
Go Web编程授权许可 授权许可 1 除特别声明外,本书中的内容使用CC BY-SA 3.0 License(创作共用 署名-相同方式共享3.0许可协议)授权,代码 遵循BSD 3-Clause License(3项条款的BSD许可协议)。 开始阅读 开始阅读 开始阅读 2 Copyright (c) 2012, AstaXie and The Contributors All rights reserved 这一章中我们主要介绍了如何安装Go,Go可以通过三种方式安装:源码安装、标准包安装、第三方工具安装,安装之 后我们需要配置我们的开发环境,然后结束了如何配置本地的$GOPATH,通过设置$GOPATH之后读者就可以创建项 目,接着介绍了如何来进行项目编译、应用安装等问题,这些需要用到很多Go命令,所以接着就介绍了一些Go的常用 命令工具,包括编译、安装、格式化、测试等命令,最后介绍了Go的开发工具,目前有很多Go的开发工具: 始值(非零)的T类型,而不是*T。本质来讲,导致这三个类型有所不同的原因是指向数据结构的引用在使用前必须被 初始化。例如,一个slice,是一个包含指向数据(内部array)的指针、长度和容量的三项描述符;在这些项目被 初始化之前,slice为nil。对于slice、map和channel来说,make初始化了内部的数据结构,填充适当的值。 make返回初始化后的(非零)值。 下面这个图0 码力 | 295 页 | 5.91 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a那你觉得Go的卖点是什么呢? 我个人的观点是,做为一门静态语言,Go却和很多动态脚本语言一样得灵活是 Go的主要卖点。 节省内存、程序启动快、代码执行速度快和编译速度快合在一块儿是Go的另一 个主要卖点。 虽然这三项是C家族语言的共同特征,但是在Web开发领域,很 少有语言同时拥有这四个特征。 事实上,这就是我当初从Java转到Go进行Web 开发的原因。 内置并发编程支持也算是Go的卖点,虽然我个人认为它不是Go的主要卖点。 对于很多项目来说, Go是一个相当不错的选择。 目前,Go主要用于网络开发、系统工具开发、数 据库开发和区块链开发。 随着从Go 1.18开始支持自定义泛型,预期Go会在更 多开发领域流行起来,比如图形界面、游戏、大数据和人工智能等。 最后,我们应该知道,没有一门语言是完美的。Go也一样。Go的设计中有很多 折衷和各种权衡。Go 1确实有一些不足。 比如,目前Go不支持任意类型的不变 量。这导致 但在一个标准声明语句中,所有出现在左侧的变量必须都为新声明的变 量。 注意,相对于纯赋值语句,目前短声明语句有一个限制:出现在一个短声明左 侧的项必须都为纯标识符。 以后我们将学习到在纯赋值语句的左边可以出现结 构体值的字段,指针的解引用和容器类型值的元素索引项等。 但是这些项不能 出现在一个变量短声明语句的左边。 关于“赋值”这个术语 以后,当“赋值”这个术语被提到的时候,它可以指一个纯赋值、一个短变量声0 码力 | 608 页 | 1.08 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a那你觉得Go的卖点是什么呢? 我个人的观点是,做为一门静态语言,Go却和很多动态脚本语言一样得灵活 是Go的主要卖点。 节省内存、程序启动快、代码执行速度快和编译速度快合在一块儿是Go的另 一个主要卖点。 虽然这三项是C家族语言的共同特征,但是在Web开发领域, 很少有语言同时拥有这四个特征。 事实上,这就是我当初从Java转到Go进行 Web开发的原因。 内置并发编程支持也算是Go的卖点,虽然我个人认为它不是Go的主要卖点。 对于很多项目来说, Go是一个相当不错的选择。 目前,Go主要用于网络开发、系统工具开发、数 据库开发和区块链开发。 随着从Go 1.18开始支持自定义泛型,预期Go会在更 多开发领域流行起来,比如图形界面、游戏、大数据和人工智能等。 最后,我们应该知道,没有一门语言是完美的。Go也一样。Go的设计中有很 多折衷和各种权衡。Go 1确实有一些不足。 比如,目前Go不支持任意类型的 不变量。这导 但在一个标准声明语句中,所有出现在左侧的变量必须都为新声明的变 量。 注意,相对于纯赋值语句,目前短声明语句有一个限制:出现在一个短声明左 侧的项必须都为纯标识符。 以后我们将学习到在纯赋值语句的左边可以出现 结构体值的字段,指针的解引用和容器类型值的元素索引项等。 但是这些项 不能出现在一个变量短声明语句的左边。 关于“赋值”这个术语 以后,当“赋值”这个术语被提到的时候,它可以指一个纯赋值、一个短变量声0 码力 | 821 页 | 956.82 KB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a那你觉得Go的卖点是什么呢? 我个人的观点是,做为一门静态语言,Go却和很多动态脚本语言一样得灵活是Go的 主要卖点。 节省内存、程序启动快、代码执行速度快和编译速度快合在一块儿是Go的另一个主 要卖点。 虽然这三项是C家族语言的共同特征,但是在Web开发领域,很少有语言同 时拥有这四个特征。 事实上,这就是我当初从Java转到Go进行Web开发的原因。 内置并发编程支持也算是Go的卖点,虽然我个人认为它不是Go的主要卖点。 对于很多项目来说,Go是一 个相当不错的选择。 目前,Go主要用于网络开发、系统工具开发、数据库开发和区 块链开发。 随着从Go 1.18开始支持自定义泛型,预期Go会在更多开发领域流行起 来,比如图形界面、游戏、大数据和人工智能等。 第2章:Go语言简介 10 最后,我们应该知道,没有一门语言是完美的。Go也一样。Go的设计中有很多折衷 和各种权衡。Go 1确实有一些不足。 比如,目前Go不支持任意类型的不变量。这导 必须都为新声明的变量。 第7章:常量和变量 44 注意,相对于纯赋值语句,目前短声明语句有一个限制:出现在一个短声明左侧的 项必须都为纯标识符。 以后我们将学习到在纯赋值语句的左边可以出现结构体值的 字段,指针的解引用和容器类型值的元素索引项等。 但是这些项不能出现在一个变 量短声明语句的左边。 关于“赋值”这个术语 以后,当“赋值”这个术语被提到的时候,它可以指一个纯赋值、一个短变量声明0 码力 | 591 页 | 21.40 MB | 1 年前3
使用Go与redis构建有趣的应用“name” “age” “gender” 散列列 使⽤用哈希表储存键值对、每个键都各不不相同、获取单个键值对的复杂度为常数 值 “peter” 32 “male” 索引 0 1 2 3 项 “job::6379” “msg::10086” “request::256” “user::peter” 列列表 使⽤用双端链表实现的有序序列列、针对两端的操作为常数复杂度、其他列列表操作多为线性复杂度、允许重复元素 执⾏行行命令并获取回复 将回复转换为字符串串 锁 lock 锁 锁是⼀一种同步机制, 它可以保证⼀一项资源在任何时候只能被⼀一个进程使⽤用, 如果有其他进程想要 使⽤用相同的资源, 那么它们就必须等待, 直到正在使⽤用资源的进程放弃使⽤用权为⽌止。 锁 锁是⼀一种同步机制, 它可以保证⼀一项资源在任何时候只能被⼀一个进程使⽤用, 如果有其他进程想要 使⽤用相同的资源, 那么它们就必须等待, 直到正在使⽤用资源的进程放弃使⽤用权为⽌止。 ⼀一个锁实现通常会有获取(acquire)和释放(release)这两种操作: 锁 锁是⼀一种同步机制, 它可以保证⼀一项资源在任何时候只能被⼀一个进程使⽤用, 如果有其他进程想要 使⽤用相同的资源, 那么它们就必须等待, 直到正在使⽤用资源的进程放弃使⽤用权为⽌止。 ⼀一个锁实现通常会有获取(acquire)和释放(release)这两种操作:0 码力 | 176 页 | 2.34 MB | 1 年前3
go-zero开源项目的成长史万俊峰Kevin go-zero 开源项⽬成⻓史 About me • go-zero 作者 • 阿⾥云MVP • 腾讯云TVP • ArchSummit 明星讲师 • GopherChina 主持⼈&⾦牌讲师 • 极客时间 Go 专题出品⼈ • 腾讯云开发者⼤会讲师 TOC ● go-zero 的由来 ● go-zero 的现状 ● go-zero 的成⻓阶段 ● go-zero 为什么早期要多分享? • 冷启动 • 让更多的⽤户知道,提升项⽬影响⼒ • 更深⼊的理解⽤户的需求,避免闭⻔造⻋ 分享要注重⼝碑 • GopherChina⾦牌讲师 • ArchSumit⾦牌讲师 • Go夜读年度最佳、最多播放量的分享 技术⽂章 技术⽂章 技术⽂章 技术⽂章 go-zero 推⼴思路 • 项⽬本身才是关键 • 技术⼤会 • 线上线下分享 •0 码力 | 31 页 | 4.83 MB | 9 月前3
2.1.7 谈如何构建易于拆分的单体应用互,循环依赖等等,导致服务拆分困难:1.0版本, 2.0版本,3.0版本...... (初期缺乏设计) ➢ 服务维护成本⾼ • 看起来不复杂的功能搞了N个服务,花了⼏天的时间 才把测试环境跑起来。为了维护这个项⽬同时打开了 N个开发⼯具窗⼝来回切,⼀会⼉⾃⼰都蒙圈了;⼀ 个代码仓库有效代码只有⼏百⾏,⼀个脚本搞定的事 情硬是搞出来 n 个服务......(职责划分和架构选型不 合理,为了微服务⽽微服务) • 设计-UDD等; 2. 并不是开始进⾏微服务拆分的时候才⽤到对应的建 模⽅法,在设计单体架构下同样也需要; ➢ 合适的时机选择合适的架构,⼤多数情况下单体先⾏, 尤其是对于创业公司或者⼤公司内部的创业项⽬ or ⼩项 ⽬ ➢ 选择基础设施相对完善的云平台和合适的业务框架 03 突破 建模:通过表象看本质 第⼆部分 建模:通过表象看本质 ➢ 软件开发过程:描述软件开发全过程、软件开发活动以及他们之间关系的结构框架。0 码力 | 27 页 | 13.04 MB | 1 年前3
Hello 算法 1.0.0b4 Golang版强的同学能够顺利地将地雷逐个排掉,而基础不足的同学很可能被炸的满头是包,并在挫折中步步退缩。通 读教材书籍也是一种常见做法,但对于面向求职的同学来说,毕业季、投递简历、准备笔试面试已经占据了 大部分精力,厚重的书籍往往变成了一项艰巨的挑战。 如果你也面临类似的困扰,那么很幸运这本书找到了你。本书是我对此问题的给出的答案,虽然不一定正确, 但至少是一次积极的尝试。这本书虽然不足以让你直接拿到 Offer ,但会引导你探索数据结构与算法的“知 := 0; j < n + 1; j++ { fmt.Println(0) } } } 第二步:判断渐近上界 时间复杂度由多项式 ?(?) 中最高阶的项来决定。这是因为在 ? 趋于无穷大时,最高阶的项将发挥主导作用, 其他项的影响都可以被忽略。 以下表格展示了一些例子,其中一些夸张的值是为了强调“系数无法撼动阶数”这一结论。当 ? 趋于无穷大 时,这些常数变得无足轻重。 2. 复杂度 3.2. 推算方法 空间复杂度的推算方法与时间复杂度大致相同,只是将统计对象从“计算操作数量”转为“使用空间大小”。 与时间复杂度不同的是,我们通常只关注「最差空间复杂度」,这是因为内存空间是一项硬性要求,我们必须 确保在所有输入数据下都有足够的内存空间预留。 最差空间复杂度中的“最差”有两层含义,分别是输入数据的最差分布和算法运行过程中的最差时间点。 ‧ 以最差输入数据为准。当 ? <0 码力 | 347 页 | 27.40 MB | 1 年前3
共 29 条
- 1
- 2
- 3













