Go 入门指南(The way to Go)语言支持交叉编译,比如说你可以在运行 Linux 系统的计算机上开发运行下 Windows 下运行的应用 程序。这是第一门完全支持 UTF-8 的编程语言,这不仅体现在它可以处理使用 UTF-8 编码的字符串,就 连它的源码文件格式都是使用的 UTF-8 编码。Go 语言做到了真正的国际化! 1.2.6 语言的用途 Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。 "fmt" "runtime" ) func main() { fmt.Printf("%s", runtime.Version()) } 这段代码将会输出 go1.4.2 或类似字符串。 Go入门指南 - 17 - 本文档使用 看云 构建 7. 更新版本 你可以在 发布历史 页面查看到最新的稳定版。 当前最新的稳定版 Go 1 系列于 2012 年 3 月 28 日发布。 会格式化该源文件的代码然后将格式化后的代码覆盖原始内容 (如果不加参数 -w 则只会打印格式化后的结果而不重写文件); gofmt -w *.go 会格式化并重写所有 Go 源文件; gofmt map1 会格式化并重写 map1 目录及其子目录下的所有 Go 源文件。 gofmt 也可以通过在参数 -r 后面加入用双引号括起来的替换规则实现代码的简单重构,规则的格式: <原始内容> -> <替换内容>0 码力 | 380 页 | 2.97 MB | 1 年前3
Go 入门指南(The way to Go)与其它语言进行交互 第4章:基本结构和基本数据类型 4.1 文件名、关键字与标识符 4.2 Go 程序的基本结构和要素 4.3 常量 4.4 变量 4.5 基本类型和运算符 4.6 字符串 4.7 strings 和 strconv 包 4.8 时间和日期 4.9 指针 - 2 - 本文档使用 书栈(BookStack.CN) 构建 第5章:控制结构 5.1 if-else 通过内存缓存来提升性能 第7章:数组与切片 7.1 声明和初始化 7.2 切片 7.3 For-range 结构 7.4 切片重组(reslice) 7.5 切片的复制与追加 7.6 字符串、数组和切片的应用 第8章:Map 8.1 声明、初始化和 make 8.2 测试键值对是否存在及删除元素 8.3 for-range 的配套用法 8.4 map 类型的切片 8.5 map 1 tcp服务器 15.2 一个简单的网页服务器 15.3 访问并读取页面 15.4 写一个简单的网页应用 第 16章 常见的陷阱与错误 16.1 误用短声明导致变量覆盖 16.2 误用字符串 16.3 发生错误时使用defer关闭一个文件 16.4 何时使用new()和make() - 5 - 本文档使用 书栈(BookStack.CN) 构建 16.5 不需要将一个指向切片的指针传递给函数0 码力 | 466 页 | 4.44 MB | 1 年前3
Go Web编程session存储 6.4 预防session劫持 6.5 小结 7.文本文件处理 7.1 XML处理 7.2 JSON处理 7.3 正则处理 7.4 模板处理 7.5 文件操作 7.6 字符串处理 7.7 小结 8.Web服务 8.1 Socket编程 8.2 WebSocket 8.3 REST 8.4 RPC 8.5 小结 9.安全与加密 9.1 预防CSRF攻击 9.2 标识符。 结论 结论 Go使用package(和Python的模块类似)来组织代码。main.main()函数(这个函数主要位于主包)是每一个独立 的可运行程序的入口点。Go使用UTF-8字符串和标识符(因为UTF-8的发明者也就是Go的发明者),所以它天生就具有多 语言的支持。 links links 目录 40 上一节: Go语言基础 下一节: Go基础 41 2.2 main() { var i int } 常量 常量 42 所谓常量,也就是在程序编译阶段就确定下来的值,而程序在运行时则无法改变该值。在Go程序中,常量可定义为数 值、布尔值或字符串等类型。 它的语法如下: const constantName = value //如果需要,也可以明确指定常量的类型: const Pi float32 = 3.1415926 下面是一些常量声明的例子:0 码力 | 295 页 | 5.91 MB | 1 年前3
Golang 入门笔记则第二个条件不会判断,最终结果为 false 变量 语法基础 Hello World 语法基础 组成 关键字 标识符 变量 字符串 符号 分隔符 Go 语言一行代表一个语句的结束,不像 C 家族语言一样以分号结束 如果一个语句写多行就需要加一个分号,不推荐 字符串连接 Go 语言字符串连接通过 `+` 实现 案例 : fmt.Println("Google " + "Runoob") 关键字 位实数和虚数 complex128 64 位实数和虚数 3. 字符串类型(string) 字符串就是一串固定长度的字符连接起来的字符序列。Go 的字符串是由单个字节连接起来的。 Go 语言的字符串的字节使用 UTF-8 编码标识 Unicode 文本。 Go 的字符串不同,它是由字节组成的。 如果需要存储单个的字符串字母,一般使用 byte 来保存。 我们直接输出 byte 的时候他是直接输出了字符的码值 注意事项(使用细节) 1. Golang 字符串的字节使用 UTF-8编码进行表示 Unicode 文本,这样golang 统一适用了 utf-8 变么,就能避免了中文乱码的问题 2. 字符串一旦定义就不能修改 错误案例: var str1 string = "124" str1[1] = "3" 3.字符串的两种形式 1) 双引号,会识别转义字符 2)反引号,以字符串的原生形式输出,包括换行和特殊0 码力 | 2 页 | 511.29 KB | 1 年前3
Hello 算法 1.0.0b4 Golang版例如“归并排序”算法,输入长度为 ? 的数组,每轮递归将数组从中点划分为两半,形成高度为 log ? 的递 归树,使用 ?(log ?) 栈帧空间。 再例如“数字转化为字符串”,输入任意正整数 ? ,它的位数为 log10 ? ,即对应字符串长度为 log10 ? ,因 此空间复杂度为 ?(log10 ?) = ?(log ?) 。 2.3.4. 权衡时间与空间 理想情况下,我们希望算法的时间复杂 5. 编程语言的字符编码 对于以往的大多数编程语言,程序运行中的字符串都采用 UTF‑16 或 UTF‑32 这类等长的编码。这是因为在 等长编码下,我们可以将字符串看作数组来处理,具体来说: ‧ 随机访问: UTF‑16 编码的字符串可以很容易地进行随机访问。UTF‑8 是一种变长编码,要找到第 ? 个 字符,我们需要从字符串的开始处遍历到第 ? 个字符,这需要 ?(?) 的时间。 ‧ 字符计数: 字符计数: 与随机访问类似,计算 UTF‑16 字符串的长度也是 ?(1) 的操作。但是,计算 UTF‑8 编码的 字符串的长度需要遍历整个字符串。 ‧ 字符串操作: 在 UTF‑16 编码的字符串中,很多字符串操作(如分割、连接、插入、删除等)都更容易进 行。在 UTF‑8 编码的字符串上进行这些操作通常需要额外的计算,以确保不会产生无效的 UTF‑8 编码。 编程语言的字符编码方案设计是一个很有趣的话题,涉及到许多因素:0 码力 | 347 页 | 27.40 MB | 1 年前3
Hello 算法 1.0.0b5 Golang版对数阶常见于分治算法。例如归并排序,输入长度为 ? 的数组,每轮递归将数组从中点划分为两半,形成高 度为 log ? 的递归树,使用 ?(log ?) 栈帧空间。 再例如将数字转化为字符串,输入一个正整数 ? ,它的位数为 log10 ?+1 ,即对应字符串长度为 log10 ?+1 ,因此空间复杂度为 ?(log10 ? + 1) = ?(log ?) 。 2.4.4 权衡时间与空间 理想情况下,我们希望算法 5 编程语言的字符编码 对于以往的大多数编程语言,程序运行中的字符串都采用 UTF‑16 或 UTF‑32 这类等长的编码。在等长编码 下,我们可以将字符串看作数组来处理,这种做法具有以下优点。 ‧ 随机访问: UTF‑16 编码的字符串可以很容易地进行随机访问。UTF‑8 是一种变长编码,要找到第 ? 个 字符,我们需要从字符串的开始处遍历到第 ? 个字符,这需要 ?(?) 的时间。 ‧ ‧ 字符计数: 与随机访问类似,计算 UTF‑16 字符串的长度也是 ?(1) 的操作。但是,计算 UTF‑8 编码的 字符串的长度需要遍历整个字符串。 ‧ 字符串操作: 在 UTF‑16 编码的字符串中,很多字符串操作(如分割、连接、插入、删除等)都更容易进 行。在 UTF‑8 编码的字符串上进行这些操作通常需要额外的计算,以确保不会产生无效的 UTF‑8 编码。 实际上,编程语言的字符编0 码力 | 379 页 | 30.70 MB | 1 年前3
Hello 算法 1.0.0 Golang版对数阶常见于分治算法。例如归并排序,输入长度为 ? 的数组,每轮递归将数组从中点处划分为两半,形成 高度为 log ? 的递归树,使用 ?(log ?) 栈帧空间。 再例如将数字转化为字符串,输入一个正整数 ? ,它的位数为 ⌊log10 ?⌋ + 1 ,即对应字符串长度为 ⌊log10 ?⌋ + 1 ,因此空间复杂度为 ?(log10 ? + 1) = ?(log ?) 。 2.4.4 权衡时间与空间 理想情况下,我 空间、取值范围和默认值可能会有所不同。 ‧ 在 Python 中,整数类型 int 可以是任意大小,只受限于可用内存;浮点数 float 是双精度 64 位;没 有 char 类型,单个字符实际上是长度为 1 的字符串 str 。 ‧ C 和 C++ 未明确规定基本数据类型的大小,而因实现和平台各异。表 3‑1 遵循 LP64 数据模型,其用于 包括 Linux 和 macOS 在内的 Unix 64 位操作系统。 5 编程语言的字符编码 对于以往的大多数编程语言,程序运行中的字符串都采用 UTF‑16 或 UTF‑32 这类等长编码。在等长编码下, 我们可以将字符串看作数组来处理,这种做法具有以下优点。 ‧ 随机访问:UTF‑16 编码的字符串可以很容易地进行随机访问。UTF‑8 是一种变长编码,要想找到第 ? 个字符,我们需要从字符串的开始处遍历到第 ? 个字符,这需要 ?(?) 的时间。 ‧ 字符计数:与随机访问类似,计算0 码力 | 382 页 | 17.60 MB | 1 年前3
Hello 算法 1.1.0 Go版对数阶常见于分治算法。例如归并排序,输入长度为 ? 的数组,每轮递归将数组从中点处划分为两半,形成 高度为 log ? 的递归树,使用 ?(log ?) 栈帧空间。 再例如将数字转化为字符串,输入一个正整数 ? ,它的位数为 ⌊log10 ?⌋ + 1 ,即对应字符串长度为 ⌊log10 ?⌋ + 1 ,因此空间复杂度为 ?(log10 ? + 1) = ?(log ?) 。 2.4.4 权衡时间与空间 理想情况下,我 空间、取值范围和默认值可能会有所不同。 ‧ 在 Python 中,整数类型 int 可以是任意大小,只受限于可用内存;浮点数 float 是双精度 64 位;没 有 char 类型,单个字符实际上是长度为 1 的字符串 str 。 ‧ C 和 C++ 未明确规定基本数据类型的大小,而因实现和平台各异。表 3‑1 遵循 LP64 数据模型,其用于 包括 Linux 和 macOS 在内的 Unix 64 位操作系统。 5 编程语言的字符编码 对于以往的大多数编程语言,程序运行中的字符串都采用 UTF‑16 或 UTF‑32 这类等长编码。在等长编码下, 我们可以将字符串看作数组来处理,这种做法具有以下优点。 ‧ 随机访问:UTF‑16 编码的字符串可以很容易地进行随机访问。UTF‑8 是一种变长编码,要想找到第 ? 个字符,我们需要从字符串的开始处遍历到第 ? 个字符,这需要 ?(?) 的时间。 ‧ 字符计数:与随机访问类似,计算0 码力 | 383 页 | 18.48 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Go 版对数阶常见于分治算法。例如归并排序,输入长度为 ? 的数组,每轮递归将数组从中点处划分为两半,形成 高度为 log ? 的递归树,使用 ?(log ?) 栈帧空间。 再例如将数字转化为字符串,输入一个正整数 ? ,它的位数为 ⌊log10 ?⌋ + 1 ,即对应字符串长度为 ⌊log10 ?⌋ + 1 ,因此空间复杂度为 ?(log10 ? + 1) = ?(log ?) 。 2.4.4 权衡时间与空间 理想情况下,我 空间、取值范围和默认值可能会有所不同。 ‧ 在 Python 中,整数类型 int 可以是任意大小,只受限于可用内存;浮点数 float 是双精度 64 位;没 有 char 类型,单个字符实际上是长度为 1 的字符串 str 。 ‧ C 和 C++ 未明确规定基本数据类型的大小,而因实现和平台各异。表 3‑1 遵循 LP64 数据模型,其用于 包括 Linux 和 macOS 在内的 Unix 64 位操作系统。 5 编程语言的字符编码 对于以往的大多数编程语言,程序运行中的字符串都采用 UTF‑16 或 UTF‑32 这类等长编码。在等长编码下, 我们可以将字符串看作数组来处理,这种做法具有以下优点。 ‧ 随机访问:UTF‑16 编码的字符串可以很容易地进行随机访问。UTF‑8 是一种变长编码,要想找到第 ? 个字符,我们需要从字符串的开始处遍历到第 ? 个字符,这需要 ?(?) 的时间。 ‧ 字符计数:与随机访问类似,计算0 码力 | 384 页 | 18.49 MB | 10 月前3
Golang 101(Go语言101 中文版) v1.21.a第14章:Go类型系统概述 - 精通Go编程必读 第15章:指针 第16章:结构体 第17章:值部 - 为了更容易和更深刻地理解Go中的各种值 第18章:数组、切片和映射 - Go中的首要容器类型 第19章:字符串 第20章:函数 - 函数类型和函数值,以及变长参数个数函数 第21章:通道 - Go特色的并发同步方式 第22章:方法 第23章:接口 - 通过包裹不同具体类型的非接口值来实现反射和多态 第24章:类型内嵌 表示内置基本类型int。int类型 是Go中的内置基本整数类型之一。 第5行中的16、第17行中的0、 第20行中的 1以及第30行的100均为整型字面量。 第35行的"Result: "是一个字符串字面 量。 请阅读基本类型和它们的字面量表示(第6章)以获取更多关于基本类型 和它们的字面量的信息。 Go中的非基本类型(均为组合类型)将在以后的其 它文章中介绍和解释。 第20行是一个赋值语句。 变量和具名常量。 上面的示例程序中使用了很多操作符,比如第17和19行的小于比较符<,第36 行的等于比较符==,还有第20和36行的加法运算符+。 第35行中的+不是一个 运算符,它是一个字符串字面量中的一个字符。 一个使用操作符的操作中涉 及到的值称为操作值(有时也可称为运算数)。 请阅读常用操作符(第8章) 以获取更多关于操作符的信息。 更多操作符将在后续其它文章中介绍。 第35和30 码力 | 821 页 | 956.82 KB | 1 年前3
共 25 条
- 1
- 2
- 3













