随笔分类 -  GO

摘要:1. 接口类型(Interface Type) 接口类型定义了一组方法的集合,描述了实现该接口的类型所需的行为 它只是一个类型声明,指定了实现接口的类型必须包含哪些方法,而没有实现具体的功能。 在 Go 中,接口类型是通过 type InterfaceName interface {} 语法来定义的 阅读全文
posted @ 2024-10-31 11:07 牛马chen 编辑
摘要:在 Go 语言中,nil 是一个预定义标识符,表示“零值”或“空值”,主要用于引用类型(如指针、切片、映射、通道、接口等)。 在 Go 中,引用类型变量在未赋值时的默认值为 nil,表示该变量未指向任何有效的内存地址或资源。 1. nil 的使用场景 nil 可以用于以下几种数据类型: 指针(Poi 阅读全文
posted @ 2024-10-31 11:02 牛马chen 编辑
摘要:Go 语言的内存管理采用了自动化的垃圾回收机制(Garbage Collection, GC) 1. 内存分配(Memory Allocation) Go 的内存分配主要有堆(Heap)和栈(Stack)两种方式。不同的内存分配方式会影响内存的生命周期和访问性能。 栈分配:局部变量通常在栈上分配。栈 阅读全文
posted @ 2024-10-31 11:00 牛马chen 编辑
摘要:在 Go 语言中,有几种内置集合类型(如 slice、map 和 channel),这些类型的特殊之处在于它们实际上是隐式指针。 这意味着当我们将这些集合类型传递给函数或方法时,传递的是它们的引用,而不是拷贝。 这种特性使得这些集合能够在函数中直接修改原始数据,而不需要显式传递指针。 1. 内置集合 阅读全文
posted @ 2024-10-31 10:56 牛马chen 编辑
摘要:是的,接口 是 Go 语言中实现多态的关键机制。通过接口,Go 可以让不同类型共享相同的行为,而无需关心这些类型的具体实现。这种机制称为多态性,它允许使用不同的类型以统一的方式进行操作。 1. 什么是接口(Interface)? 在 Go 语言中,接口(interface) 是一种类型,它定义了一组 阅读全文
posted @ 2024-10-24 20:40 牛马chen 编辑
摘要:在 Go 语言中,标识符的大小写不仅仅是书写上的区别,它直接关系到可见性和访问权限,即是否可以在包外部(跨包)访问某个标识符(变量、常量、函数、结构体、方法等)。 1. 大小写与可见性规则 Go 使用了一种简单而直接的机制来控制标识符的访问权限: 首字母大写:标识符对其他包(package)可见,称 阅读全文
posted @ 2024-10-24 19:19 牛马chen 编辑
摘要:在 Go 语言中,... 运算符有两个主要用途,分别用于变长参数函数和切片展开。 1. 变长参数函数 在 Go 语言中,使用 ... 运算符可以定义一个接受可变数量参数的函数,也就是“变长参数函数”。这种函数可以接收不确定数量的参数,并将这些参数当作切片来处理。 语法: func functionN 阅读全文
posted @ 2024-10-24 15:38 牛马chen 编辑
摘要:为了更好地理解 Go 语言中的 切片(slice),我们可以将它与 C++ 中的数组或容器(如 std::vector)进行比较,但要注意的是,它们之间有一些关键的区别。让我们逐步将 Go 的切片与 C++ 中的概念进行对应: 1. 数组 vs 切片 在 C++ 中,数组(array) 是一种固定大 阅读全文
posted @ 2024-10-24 15:13 牛马chen 编辑
摘要:在Go语言中,range 是一个用于遍历各种数据结构(如数组、切片、字符串、map 和通道)的关键字。range 可以返回一个索引和值,或者是键和值,具体取决于你遍历的是什么类型的数据结构。 1. range 的用法 range 常用于 for 循环,来遍历集合中的元素。它可以遍历数组、切片、字符串 阅读全文
posted @ 2024-10-24 14:38 牛马chen 编辑
摘要:在Go语言中,方法是附属于某种类型的函数,也就是说,方法与接收者(receiver)绑定,它可以是结构体类型或自定义类型。 方法和函数的主要区别在于方法有一个特殊的接收者参数,而普通的函数没有。 1. Go中的方法定义 Go语言的方法是通过在函数名前面加上一个接收者参数来定义的。接收者可以是值类型或 阅读全文
posted @ 2024-10-23 19:58 牛马chen 编辑

点击右上角即可分享
微信分享提示