首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨
Go 编程语言

Go 编程语言

288 帖子 8 成员
创建于 2025-03-22 组长:凯特网
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。

  • 从本教程的开始,我们就已经创建和使用过神秘的预定义 error 类型,而且没有解释它究竟是什么。实际上它就是 interface 类型,这个类型有一个返回错误信息的单一方法:type error in...
    宁儿 发表于 189 天前
    0
    55
  • typeswitch 流程控制的语法或许是 Go语言中最古怪的语法。 它可以被看作是类型断言的增强版。它和 switchcase 流程控制代码块有些相似。 一个 typeswitch 流程控制代码块的...
    宁儿 发表于 189 天前
    0
    50
  • 空接口可以保存任何类型这个特性可以方便地用于容器的设计。下面例子使用 map 和 interface{} 实现了一个字典。字典在其他语言中的功能和 map 类似,可以将任意类型的值做成键值对保存,然后...
    宁儿 发表于 189 天前
    0
    85
  • 空接口是接口类型的特殊形式,空接口没有任何方法,因此任何类型都无须实现空接口。从实现的角度看,任何值都满足这个接口的需求。因此空接口类型可以保存任何值,也可以从空接口中取出原值。提示空接口类型类似于 ...
    宁儿 发表于 189 天前
    0
    56
  • Go语言中使用接口断言(type assertions)将接口转换成另外一个接口,也可以将接口转换为另外的类型。接口的转换在开发中非常常见,使用也非常频繁。类型断言的格式类型断言是一个使用在接口值上的...
    宁儿 发表于 189 天前
    0
    55
  • 在 Go语言中,不仅结构体与结构体之间可以嵌套,接口与接口间也可以通过嵌套创造出新的接口。一个接口可以包含一个或多个其他的接口,这相当于直接将这些内嵌接口的方法列举在外层接口中一样。只要接口的所有方法...
    宁儿 发表于 189 天前
    0
    90
  • 排序操作和字符串格式化一样是很多程序经常使用的操作。尽管一个最短的快排程序只要 15 行就可以搞定,但是一个健壮的实现需要更多的代码,并且我们不希望每次我们需要的时候都重写或者拷贝这些代码。幸运的是,...
    宁儿 发表于 189 天前
    0
    115
  • 日志可以用于查看和分析应用程序的运行状态。日志一般可以支持输出多种形式,如命令行、文件、网络等。本例将搭建一个支持多种写入器的日志系统,可以自由扩展多种日志写入设备。日志对外接口本例中定义一个日志写入...
    宁儿 发表于 189 天前
    0
    40
  • Go语言中有四种接口相关的类型转换情形:将一个非接口值转换为一个接口类型。在这样的转换中,此非接口值的类型必须实现了此接口类型。将一个接口值转换为另一个接口类型(前者接口值的类型实现了后者目标接口类型...
    宁儿 发表于 189 天前
    0
    76
  • 在 Go语言中类型和接口之间有一对多和多对一的关系,下面将列举出这些常见的概念,以方便读者理解接口与类型在复杂环境下的实现关系。一个类型可以实现多个接口一个类型可以同时实现多个接口,而接口间彼此独立,...
    宁儿 发表于 189 天前
    0
    56
  • 如果一个任意类型 T 的方法集为一个接口类型的方法集的超集,则我们说类型 T 实现了此接口类型。T 可以是一个非接口类型,也可以是一个接口类型。实现关系在 Go语言中是隐式的。两个类型之间的实现关系不...
    宁儿 发表于 189 天前
    0
    141
  • Go语言不是一种 “传统” 的面向对象编程语言:它里面没有类和继承的概念。但是 Go语言里有非常灵活的接口概念,通过它可以实现很多面向对象的特性。很多面向对象的语言都有相似的接口概念,但 Go语言中接...
    宁儿 发表于 189 天前
    0
    57
  • Go语言标准库 bufio 包,实现了对数据 I/O 接口的缓冲功能。它封装于接口 io.ReadWriter、io.Reader 和 io.Writer 中,并对应创建对象 ReadWriter、R...
    宁儿 发表于 189 天前
    0
    129
  • 有时可以让 Struct 的一个指针成员指向它自己,利用这种特性 Struct 对象可以作为链表或者二叉树的元素,通常叫做节点(Node)。链表简介链表是一种常见的重要数据结构,它的主要特点是能动态地...
    宁儿 发表于 189 天前
    0
    86
  • JSON 格式是一种用途广泛的对象文本格式。在 Go语言中,结构体可以通过系统提供的 json.Marshal() 函数进行序列化。为了演示怎样通过反射获取结构体成员及各种值的过程,下面使用反射将结构...
    宁儿 发表于 189 天前
    0
    61
  • Go语言可以将类型的方法与普通函数视为一个概念,从而简化方法和函数混合作为回调类型时的复杂性。这个特性和 C# 中的代理(delegate)类似,调用者无须关心谁来支持调用,系统会自动处理是否调用普通...
    宁儿 发表于 189 天前
    0
    73
  • Go语言开发者不需要写代码来释放程序中不再使用的变量和结构占用的内存,在 Go语言运行时中有一个独立的进程,即垃圾收集器(GC),会处理这些事情,它搜索不再使用的变量然后释放它们的内存。可以通过 ru...
    宁儿 发表于 189 天前
    0
    96
  • JavaScript 对象表示法(JSON)是一种用于发送和接收结构化信息的标准协议。在类似的协议中,JSON 并不是唯一的一个标准协议。 XML、ASN.1 和 Google 的 Protocol ...
    宁儿 发表于 189 天前
    0
    63
  • 嵌入结构体内部可能拥有相同的成员名,成员重名时会发生什么?下面通过例子来讲解。package main import ( "fmt" ) type A struct { a int...
    宁儿 发表于 189 天前
    0
    75
  • 结构体内嵌初始化时,将结构体内嵌的类型作为字段名像普通结构体一样进行初始化,详细实现过程请参考下面的代码。车辆结构的组装和初始化:package main import "fmt"...
    宁儿 发表于 189 天前
    0
    51
  • 在面向对象思想中,实现对象关系需要使用“继承”特性。例如,人类不能飞行,鸟类可以飞行。人类和鸟类都可以继承自可行走类,但只有鸟类继承自飞行类。面向对象的设计原则中也建议对象最好不要使用多重继承,有些面...
    宁儿 发表于 189 天前
    0
    78
  • 结构体可以包含一个或多个匿名(或内嵌)字段,即这些字段没有显式的名字,只有字段的类型是必须的,此时类型也就是字段的名字。匿名字段本身可以是一个结构体类型,即结构体可以包含内嵌结构体。可以粗略地将这个和...
    宁儿 发表于 189 天前
    0
    52
  • Go语言可以将类型的方法与普通函数视为一个概念,从而简化方法和函数混合作为回调类型时的复杂性。这个特性和 C 中的代理(delegate)类似,调用者无须关心谁来支持调用,系统会自动处理是否调用普通函...
    宁儿 发表于 189 天前
    0
    51
  • Go语言可以对任何类型添加方法,给一种类型添加方法就像给结构体添加方法一样,因为结构体也是一种类型。为基本类型添加方法在Go语言中,使用 type 关键字可以定义出新的自定义类型,之后就可以为自定义类...
    宁儿 发表于 189 天前
    0
    58
  • 在Go语言中,结构体就像是类的一种简化形式,那么类的方法在哪里呢?在Go语言中有一个概念,它和方法有着同样的名字,并且大体上意思相同,Go 方法是作用在接收器(receiver)上的一个函数,接收器是...
    宁儿 发表于 189 天前
    0
    55
  • Go语言的类型或结构体没有构造函数的功能,但是我们可以使用结构体初始化的过程来模拟实现构造函数。其他编程语言构造函数的一些常见功能及特性如下:每个类可以添加构造函数,多个构造函数使用函数重载实现。构造...
    宁儿 发表于 190 天前
    0
    54
  • 结构体在实例化时可以直接对成员变量进行初始化,初始化有两种形式分别是以字段“键值对”形式和多个值的列表形式,键值对形式的初始化适合选择性填充字段较多的结构体,多个值的列表形式适合填充字段较少的结构体。...
    宁儿 发表于 190 天前
    0
    76
  • 结构体的定义只是一种内存布局的描述,只有当结构体实例化时,才会真正地分配内存,因此必须在定义结构体并实例化后才能使用结构体的字段。实例化就是根据结构体定义的格式创建一份与格式一致的内存区域,结构体实例...
    宁儿 发表于 190 天前
    0
    70
  • Go语言可以通过自定义的方式形成新的类型,结构体就是这些类型中的一种复合类型,结构体是由零个或多个任意类型的值聚合成的实体,每个值都可以称为结构体的成员。结构体成员也可以称为“字段”,这些字段有以下特...
    宁儿 发表于 190 天前
    0
    50
  • Go语言自带了 testing 测试包,可以进行自动化的单元测试,输出结果验证,并且可以测试性能。为什么需要测试完善的测试体系,能够提高开发的效率,当项目足够复杂的时候,想要保证尽可能的减少 bug,...
    宁儿 发表于 190 天前
    0
    43
站长交流