
Go
文章平均质量分 89
千练极客
刻意练习,Java千练。西溪 Java 工程师 / 宇宙厂 Golang 工程师
展开
-
深入理解 Go 语言的 string 类型
在 Go 语言中,string 类型被定义为只读的字节序列。也就是说,string 类型的值是不可变的。这与许多其他语言(如 Python 或 Java)中的字符串行为是一致的。str[0] = 'h' // 这将产生编译错误在上述代码中,我们尝试修改 string 的第一个字符,但 Go 编译器会报错,因为 string 是不可变的。Go 语言中的 string 是一个复杂但强大的工具。理解 string 的内部工作原理可以帮助我们更好地使用它,并编写出更高效、更安全的代码。原创 2023-10-25 21:44:37 · 558 阅读 · 0 评论 -
深入理解 Go 语言的 map 结构
在 Go 语言中,map 是一种内建的数据类型,它可以存储无序的键值对,每一个键都是唯一的,每个键都对应一个值。map 的键和值都可以是任何类型的数据,包括基本类型(如:int,string)和复杂类型(如:结构,切片)等。Go 语言的 map 结构是一种非常强大且灵活的数据结构,它在我们的编程实践中起着极其重要的作用。原创 2023-10-25 21:41:57 · 180 阅读 · 0 评论 -
深入理解 Go 语言——动态数组Slice
Slice 又称动态数组,依托底层数组实现。在 Go 语言中,Slice 是一个引用类型,它比数组更加灵活,更适合处理序列数据。它不仅可以动态地改变自己的大小,还可以进行方便的切片操作。Slice 的定义非常简洁,只有三个字段:指针、长度和容量。a原创 2023-10-25 21:39:15 · 645 阅读 · 0 评论 -
深入理解 Go 语言——管道
在 Go 语言中,管道是一种特殊的类型,可以用来在不同的 Goroutine 之间传递数据。你可以把它想象成一条传送带或者一个管道,数据可以从一头进入,然后从另一头出来。注意:每一个管道只能存储一种类型的数据。var ch chan int // 声明管道ch := make(chan int) // 创建一个整数类型的管道管道是 Go 语言并发模型的核心组成部分,理解其实现原理对于深入理解 Go 语言是非常有帮助的。原创 2023-10-25 21:36:38 · 831 阅读 · 0 评论 -
GO千练——简单web
Martini 是 Go 生态中的一个 Web 框架,诞生于 2013 年比较早,Gin 是诞生于 2015 年的“后辈”Beego 用于在 Go 中快速开发企业应用程序,包括 RESTful API、Web 应用程序和后端服务。然后引出目前常见的 Go Web 框架,下面简单介绍 Gin、Echo、Beego 框架。它提供类似 Martini 的API ,但性能更佳,速度提升高达 40 倍。根据上面的代码,即可了解Go语言是如何实现 web 开发的。Gin 是一个使用 Go 语言开发的 Web 框架。原创 2023-10-25 21:34:03 · 52 阅读 · 0 评论 -
GO千练——并发
这使得 Go 程可以在没有显式的锁或竞态变量的情况下进行同步。接收者可以通过为接收表达式分配第二个参数来判断信道是否被关闭:若没有值可以接收且信道已被关闭,那么再执行完。select 会阻塞到某个分支可以继续执行为止,这时就会执行该分支。信道在使用前必须创建,然后我们可以通过它用信道操作符原创 2023-10-22 21:20:34 · 60 阅读 · 0 评论 -
GO千练——方法和接口
Go 语言提供了另外一种数据类型,即接口接口类型 是由一组方法签名定义的集合,它把所有的具有共性的方法定义在一起,任何其它类型只要实现了这些方法就是实现了这个接口。类型选择与一般的 switch 语句相似,不过类型选择中的 case 为类型(而非值), 它们针对给定接口值所存储的值的类型进行比较。但是我们只能为在同一包内定义的类型的接收者声明方法,而不能为其它包内定义的类型(包括 int 之类的内建类型)的接收者声明方法。如果参数为指针类型的话,则带指针参数的函数必须接受一个指针,无法接受一个值。原创 2023-10-22 21:18:35 · 82 阅读 · 0 评论 -
GO千练——指针、struct、数组、slice 和映射
Go 拥有指针,一个指针变量指向了一个值的内存地址。比如:类型 *T 是指向 T 类型值的指针。其零值为 nil。var p *int结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。简单来说,一个结构体(struct)就是一组字段(field)。比如保存图书馆的书籍记录,每本书有以下属性:Title :标题Author : 作者Subject:学科类型 []T 表示一个元素类型为 T 的切片。原创 2023-10-22 21:17:10 · 121 阅读 · 0 评论 -
GO千练——流程控制语句:for、if、else、switch 和 defer
条件语句需要开发者通过指定一个或多个条件,并通过测试条件是否为 true 来决定是否执行指定语句,并在条件为 false 的情况在执行另外的语句。初始化语句:在第一次迭代前执行。初始化语句通常为一句短变量声明,该变量声明仅在 for 语句的作用域中可见。同 for 一样, if 语句可以在条件表达式前执行一个简单的语句。当外层函数返回时,被推迟的函数会按照后进先出的顺序调用。它的特点是:推迟调用的函数其参数会立即求值,但直到外层函数返回前该函数都不会被调用。原创 2023-10-22 20:57:11 · 104 阅读 · 0 评论 -
GO千练——包、变量和函数
一切的开始,命运的齿轮开始转动。每个 Go 程序都是由包构成的,程序从 main 包开始运行。原创 2023-10-22 20:50:34 · 120 阅读 · 0 评论