摘要:
在 Go 语言中,类型断言用于将接口类型的变量转换为具体类型,以便能够访问其底层值。它在操作空接口(interface{})时尤其有用,因为空接口可以持有任意类型的值。 类型断言的语法 类型断言的基本语法如下: value, ok := interfaceVariable.(TargetType) 阅读全文
摘要:
在 Go 语言中,make 是一个内置函数,专门用于分配和初始化 slice(切片)、map(映射) 和 channel(通道) 三种数据类型。 **make 函数不会返回一个指针,而是返回初始化后的数据结构本身的引用**。 make 函数的用途 make 的主要作用是为这些引用类型的数据结构分配内 阅读全文
摘要:
在 Go 语言中,Channel 是一种用于在多个 Goroutine 之间传递数据的通信机制。 Channel 提供了类型安全、同步的数据传输方式,使 Goroutine 可以相互通信而无需使用锁。 1. Channel 的定义与声明 在 Go 中,可以使用 make 函数创建 Channel,并 阅读全文
摘要:
在 Go 语言中,Goroutine 是一种轻量级的并发执行单元,可以理解为 Go 的“协程”。 它由 Go 运行时管理,用于执行函数或任务。Goroutine 的轻量级和高效并发特性使 Go 能够轻松处理数千甚至数百万个并发任务,适合构建高并发的服务器和网络应用。 Goroutine 的启动 Go 阅读全文
摘要:
1. 接口类型(Interface Type) 接口类型定义了一组方法的集合,描述了实现该接口的类型所需的行为 它只是一个类型声明,指定了实现接口的类型必须包含哪些方法,而没有实现具体的功能。 在 Go 中,接口类型是通过 type InterfaceName interface {} 语法来定义的 阅读全文
摘要:
在 Go 语言中,nil 是一个预定义标识符,表示“零值”或“空值”,主要用于引用类型(如指针、切片、映射、通道、接口等)。 在 Go 中,引用类型变量在未赋值时的默认值为 nil,表示该变量未指向任何有效的内存地址或资源。 1. nil 的使用场景 nil 可以用于以下几种数据类型: 指针(Poi 阅读全文
摘要:
Go 语言的内存管理采用了自动化的垃圾回收机制(Garbage Collection, GC) 1. 内存分配(Memory Allocation) Go 的内存分配主要有堆(Heap)和栈(Stack)两种方式。不同的内存分配方式会影响内存的生命周期和访问性能。 栈分配:局部变量通常在栈上分配。栈 阅读全文
摘要:
在 Go 语言中,有几种内置集合类型(如 slice、map 和 channel),这些类型的特殊之处在于它们实际上是隐式指针。 这意味着当我们将这些集合类型传递给函数或方法时,传递的是它们的引用,而不是拷贝。 这种特性使得这些集合能够在函数中直接修改原始数据,而不需要显式传递指针。 1. 内置集合 阅读全文