Go 入门指南(The way to Go)折,在诸多问题上都不能给出令人满意的解决方案,尤其是在使用 C++ 来开发大型的服务端软件时,情 况更是不容乐观。由于二进制文件一般都是非常巨大的,因此需要耗费大量的时间在编译这些文件上,同 时编程语言的设计思想也已经非常陈旧,这些情况都充分证明了现有的编程语言已不符合时下的生产环 境。尽管硬件在过去的几十年中有了飞速的发展,但人们依旧没有找到机会去改变 C++ 在软件开发的重 要地位,并在实际开发过程中 Go 语言通过改善或去除在 C、C++ 或 Java 中的一些所谓“开放”特性来让开发者们的工作更加便利。 这里只举例其中的几个,比如对于变量的默认初始化,内存分配与自动回收,以及更简洁却不失健壮的控 制结构。同时我们也会发现 Go 语言旨在减少不必要的编码工作,这使得 Go 语言的代码更加简洁,从而 比传统的面向对象语言更容易阅读和理解。 与 C++ 或 Java 这些有着庞大体系的语言相比,Go 这里有一段来自在 C++、Java 和 Python 领域众所周知的专家 Bruce Eckel 的评论: “作为一个有着 C/C++ 背景的开发者,我在使用 Go 语言时仿佛呼吸到了新鲜空气一般,令人心旷神 怡。我认为使用 Go 语言进行系统编程开发比使用 C++ 有着更显著的优势,因为它在解决一些很难用 C++ 解决的问题的同时,让我的工作变得更加高效。我并不是说 C++ 的存在是一个错误,相反地,我认0 码力 | 380 页 | 2.97 MB | 1 年前3
Go 入门指南(The way to Go)测试键值对是否存在及删除元素 8.3 for-range 的配套用法 8.4 map 类型的切片 8.5 map 的排序 8.6 将 map 的键值对调 第9章:包(package) 9.1 标准库概述 9.2 regexp 包 9.3 锁和 sync 包 - 3 - 本文档使用 书栈(BookStack.CN) 构建 9.4 精密计算和 big 包 9.5 自定义包和可见性 9 问题上都不能给出令人满意的解决方案,尤其是在使用 C++ 来开发大型的服务端软件时,情况更是不容乐观。由于 二进制文件一般都是非常巨大的,因此需要耗费大量的时间在编译这些文件上,同时编程语言的设计思想也已经非常 陈旧,这些情况都充分证明了现有的编程语言已不符合时下的生产环境。尽管硬件在过去的几十年中有了飞速的发 展,但人们依旧没有找到机会去改变 C++ 在软件开发的重要地位,并在实际开发过程中忍受着它所带来的令人头疼 Go 语言通过改善或去除在 C、C++ 或 Java 中的一些所谓“开放”特性来让开发者们的工作更加便利。这里只举例 其中的几个,比如对于变量的默认初始化,内存分配与自动回收,以及更简洁却不失健壮的控制结构。同时我们也会 发现 Go 语言旨在减少不必要的编码工作,这使得 Go 语言的代码更加简洁,从而比传统的面向对象语言更容易阅读 和理解。 与 C++ 或 Java 这些有着庞大体系的语言相比,Go0 码力 | 466 页 | 4.44 MB | 1 年前3
Hello 算法 1.0.0 Golang版本项目旨在创建一本开源、免费、对新手友好的数据结构与算法入门教程。 ‧ 全书采用动画图解,结构化地讲解数据结构与算法知识,内容清晰易懂,学习曲线平滑。 ‧ 算法源代码皆可一键运行,支持 Python、C++、Java、C#、Go、Swift、JavaScript、TypeScript、Dart、 Rust、C 和 Zig 等语言。 ‧ 鼓励读者在线上章节评论区互帮互助、共同进步,提问与评论通常可在两日内得到回复。 均时间复杂度为 Θ(?/2) = Θ(?) 。 但对于较为复杂的算法,计算平均时间复杂度往往比较困难,因为很难分析出在数据分布下的整体数学期望。 在这种情况下,我们通常使用最差时间复杂度作为算法效率的评判标准。 � 为什么很少看到 Θ 符号? 可能由于 ? 符号过于朗朗上口,因此我们常常使用它来表示平均时间复杂度。但从严格意义 上讲,这种做法并不规范。在本书和其他资料中,若遇到类似“平均时间复杂度 2) 和 ?(2?) 等。 2. Q & A Q:尾递归的空间复杂度是 ?(1) 吗? 理论上,尾递归函数的空间复杂度可以优化至 ?(1) 。不过绝大多数编程语言(例如 Java、Python、C++、 Go、C# 等)不支持自动优化尾递归,因此通常认为空间复杂度是 ?(?) 。 Q:函数和方法这两个术语的区别是什么? 第 2 章 复杂度分析 hello‑algo.com 50 「函数0 码力 | 382 页 | 17.60 MB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a通过包裹不同具体类型的非接口值来实现反射和多态 第24章:类型内嵌 - 不同于继承的类型扩展方式 第25章:非类型安全指针 第26章:泛型 - 如何使用和解读组合类型 第27章:反射 - reflect标准库包中提供的反射支持 一些专题 第28章:代码断行规则 第29章:更多关于延迟函数调用的知识点 第30章:一些恐慌/恢复用例 第31章:详解panic/recover原理 - 也解释了什么是“函数退出阶段” 第35章:边界检查消除 并发编程 第36章:并发同步概述 第37章:通道用例大全 第38章:如何优雅地关闭通道 第39章:其它并发同步技术 - 如何使用sync标准库包 第40章:原子操作 - 如何使用sync/atomic标准库包 第41章:Go中的内存顺序保证 第42章:一些常见并发编程错误 内存相关 第43章:内存块 第44章:关于Go值的内存布局 第45章:一些可能的内存泄漏场景 所以现在《Go语言101》大约有50篇文章。 你曾经的困惑主要包括哪些方面? 一些困惑是关于一些Go语法和语义设计细节的。 一些困惑涉及到某些类型的 值,主要是切片,接口和通道类型。 另外一些涉及到标准包API的使用细节。 你认为造成你曾经的困惑的主要原因是什么? 我觉得最主要的原因是我当时抱着Go是一门非常简单的语言的态度去学习和 使用Go。 持有这种态度阻止了我更深刻地理解Go。 Go0 码力 | 821 页 | 956.82 KB | 1 年前3
Golang 101(Go语言101 中文版) v1.21.a通过包裹不同具体类型的非接口值来实现反射和多态 第24章:类型内嵌 - 不同于继承的类型扩展方式 第25章:非类型安全指针 第26章:泛型 - 如何使用和解读组合类型 第27章:反射 - reflect标准库包中提供的反射支持 一些专题 第28章:代码断行规则 第29章:更多关于延迟函数调用的知识点 第30章:一些恐慌/恢复用例 第31章:详解panic/recover原理 - 也解释了什么是“函数退出阶段” 第35章:边界检查消除 并发编程 第36章:并发同步概述 第37章:通道用例大全 第38章:如何优雅地关闭通道 第39章:其它并发同步技术 - 如何使用sync标准库包 第40章:原子操作 - 如何使用sync/atomic标准库包 第41章:Go中的内存顺序保证 第42章:一些常见并发编程错误 内存相关 第43章:内存块 第44章:关于Go值的内存布局 第45章:一些可能的内存泄漏场景 所以现在《Go语言101》大约有50篇文章。 你曾经的困惑主要包括哪些方面? 一些困惑是关于一些Go语法和语义设计细节的。 一些困惑涉及到某些类型的 值,主要是切片,接口和通道类型。 另外一些涉及到标准包API的使用细节。 你认为造成你曾经的困惑的主要原因是什么? 我觉得最主要的原因是我当时抱着Go是一门非常简单的语言的态度去学习和使 用Go。 持有这种态度阻止了我更深刻地理解Go。 Go是0 码力 | 608 页 | 1.08 MB | 1 年前3
Hello 算法 1.0.0b4 Golang版本项目旨在创建一本开源免费、新手友好的数据结构与算法入门教程。 ‧ 全书采用动画图解,结构化地讲解数据结构与算法知识,内容清晰易懂、学习曲线平滑。 ‧ 算法源代码皆可一键运行,支持 Java, C++, Python, Go, JS, TS, C#, Swift, Zig 等语言。 ‧ 鼓励读者在章节讨论区互帮互助、共同进步,提问与评论通常可在两日内得到回复。 0.1.1. 读者对象 若您 ‧ 时间效率,即算法运行速度的快慢。 ‧ 空间效率,即算法占用内存空间的大小。 简而言之,我们的目标是设计“既快又省”的数据结构与算法。掌握评估算法效率的方法则至关重要,因为 只有了解评价标准,我们才能进行算法之间的对比分析,从而指导算法设计与优化过程。 2.1.2. 效率评估方法 实际测试 假设我们现在有算法 A 和算法 B,它们都能解决同一问题,现在需要对比这两个算法的效率。我们最直接的 2) = Θ(?) 。 但在实际应用中,尤其是较为复杂的算法,计算平均时间复杂度比较困难,因为很难简便地分析出在数据分 布下的整体数学期望。在这种情况下,我们通常使用最差时间复杂度作为算法效率的评判标准。 2. 复杂度 hello‑algo.com 28 � 为什么很少看到 Θ 符号? 可能由于 ? 符号过于朗朗上口,我们常常使用它来表示「平均复杂度」,但从严格意义上看, 这种做法并不规0 码力 | 347 页 | 27.40 MB | 1 年前3
Hello 算法 1.1.0 Go版本项目旨在创建一本开源、免费、对新手友好的数据结构与算法入门教程。 ‧ 全书采用动画图解,结构化地讲解数据结构与算法知识,内容清晰易懂,学习曲线平滑。 ‧ 算法源代码皆可一键运行,支持 Python、C++、Java、C#、Go、Swift、JavaScript、TypeScript、Dart、 Rust、C 和 Zig 等语言。 ‧ 鼓励读者在线上章节评论区互帮互助、共同进步,提问与评论通常可在两日内得到回复。 均时间复杂度为 Θ(?/2) = Θ(?) 。 但对于较为复杂的算法,计算平均时间复杂度往往比较困难,因为很难分析出在数据分布下的整体数学期望。 在这种情况下,我们通常使用最差时间复杂度作为算法效率的评判标准。 为什么很少看到 Θ 符号? 可能由于 ? 符号过于朗朗上口,因此我们常常使用它来表示平均时间复杂度。但从严格意义上讲,这 种做法并不规范。在本书和其他资料中,若遇到类似“平均时间复杂度 ?( 2) 和 ?(2?) 等。 2. Q & A Q:尾递归的空间复杂度是 ?(1) 吗? 理论上,尾递归函数的空间复杂度可以优化至 ?(1) 。不过绝大多数编程语言(例如 Java、Python、C++、 Go、C# 等)不支持自动优化尾递归,因此通常认为空间复杂度是 ?(?) 。 Q:函数和方法这两个术语的区别是什么? 第 2 章 复杂度分析 hello‑algo.com 50 函数(f0 码力 | 383 页 | 18.48 MB | 1 年前3
02. Service Mesh落地之后_为sidecar注入灵魂 - 周群力熔断限流 负载均衡 Service Mesh 落地实践 7 基础设施 MOSN RPC MQ Actuator Cache Config 鉴权 配置 Java/NodeJS/C++/… App P a a S 降级限流 流量镜像 … 消息 缓存 8 事情没有那么 简单 新的挑战 1:应用跟基础设施强绑定 9 MOSN App 业务逻辑 RPC SDK 业务逻辑 X SDK 通信序列化协议 RPC Cache MQ Config python 业务逻辑 X SDK 通信序列化协议 go 业务逻辑 X SDK 通信序列化协议 C++ 业务逻辑 X SDK 通信序列化协议 SOFA- RPC Redis SOFA-MQ SOFA-config 基础设施 14 Multi-Runtime 什么是 Runtime? Mesh Runtime 分布式能力原语合集 定位 具有明确语义的 API 交互方式 通信协议 网络代理 定位 流量拦截 交互方式 私有协议 通信协议 高 能力丰富度 Http/gRPC 标准协议 19 Dapr Dapr 20 • 提供多种分布式能力 • 对接了丰富的基础组件 • 厂商解绑,跨云部署 21 事情没有那么 简单 Dapr 没解决什么 22 App0 码力 | 63 页 | 880.85 KB | 1 年前3
Go Web编程Golang》。写这本书不表示我能力很强,而是我愿意分享,和大家一起分享Go写Web应用的一些东西。 对于从PHP/Python/Ruby转过来的同学了解Go怎么写Web应用开发的 对于从C/C++转过来的同学了解Web到底是怎么运行起来的 我一直认为知识是用来分享的,让更多的人分享自己拥有的一切知识这个才是人生最大的快乐。 这本书目前我放在Github上,我现在基本每天晚上抽空会写一 Go的三种安装方式 Go的三种安装方式 Go有多种安装方式,你可以选择自己喜欢的。这里我们介绍三种最常见的安装方式: Go源码安装:这是一种标准的软件安装方式。对于经常使用Unix类系统的用户,尤其对于开发者来说,从源 码安装是最方便而熟悉的。 Go标准包安装:Go提供了方便的安装包,支持Windows、Linux、Mac等系统。这种方式适合初学者,可根据自 己的系统位数下载好相应的安装包,一路next就可以轻松安装了。 源码安装之后执行Go命令的图 如果出现Go的Usage信息,那么说明Go已经安装成功了;如果出现该命令不存在,那么可以检查一下自己的PATH环境 变中是否包含了Go的安装目录。 Go标准包安装 Go标准包安装 Go提供了每个平台打好包的一键安装,这些包默认会安装到如下目录:/usr/local/go (Windows系统:c:\Go),当然 你可以改变他们的安装位置,但是改变之后你必须在你的环境变量中设置如下信息:0 码力 | 295 页 | 5.91 MB | 1 年前3
Hello 算法 1.0.0b5 Golang版本项目旨在创建一本开源免费、新手友好的数据结构与算法入门教程。 ‧ 全书采用动画图解,结构化地讲解数据结构与算法知识,内容清晰易懂、学习曲线平滑。 ‧ 算法源代码皆可一键运行,支持 Java、C++、Python、Go、JS、TS、C#、Swift、Rust、Dart、Zig 等 语言。 ‧ 鼓励读者在章节讨论区互帮互助、共同进步,提问与评论通常可在两日内得到回复。 0.1.1 读者对象 均时间复杂度为 Θ(?/2) = Θ(?) 。 但对于较为复杂的算法,计算平均时间复杂度往往是比较困难的,因为很难分析出在数据分布下的整体数学 期望。在这种情况下,我们通常使用最差时间复杂度作为算法效率的评判标准。 � 为什么很少看到 Θ 符号? 可能由于 ? 符号过于朗朗上口,我们常常使用它来表示平均时间复杂度。但从严格意义上看, 这种做法并不规范。在本书和其他资料中,若遇到类似“平均时间复杂度 (2?) 等。 2. Q & A � 尾递归的空间复杂度是 ?(1) 吗? 理论上,尾递归函数的空间复杂度可以被优化至 ?(1) 。不过绝大多数编程语言(例如 Java、 Python、C++、Go、C# 等)都不支持自动优化尾递归,因此通常认为空间复杂度是 ?(?) 。 第 2 章 复杂度分析 hello‑algo.com 48 � 函数和方法这两个术语的区别是什么? 函数(f0 码力 | 379 页 | 30.70 MB | 1 年前3
共 66 条
- 1
- 2
- 3
- 4
- 5
- 6
- 7













