首页
Pingciple
取消

Go接口

接口类型是对其他类型行为的概括与抽象。通过使用接口,我们可以写出更加灵活和通用的函数,这些函数不用绑定在一个特定的类型实现上。 很多面向对象的语言都有接口这个概念,Go语言的接口的独特之处在于它是隐式实现。换句话说,对于一个具体的类型,无须声明它实现了哪些接口,只要提供接口所必需的方法即可。这种设计让你无须改变已有类型的实现,就可以为这些类型创建新的接口,对于那些不能修改包的类型,这一点特...

Go方法

从20世纪90年代初开始,面向对象编程(OOP)的编程思想就已经在工业领域和教学领域占据了主导位置,而且几乎所有广泛应用的编程语言都支持了这种思想。Go语言也不例外。 尽管没有统一的面向对象编程的定义,对我们来说,对象就是简单的一个值或者变量,并且拥有其方法,而方法是某种特定类型的函数。面向对象编程就是使用方法来描述每个数据结构的属性和操作,于是,使用者不需要了解对象本身的实现。 在之前...

Go函数

函数包含连续的执行语句,可以在代码中通过调用函数来执行它们。函数能够将一个复杂的工作切分成多个更小的模块,使得多人协作变得更加容易。另外,函数对它的使用者隐藏了实现细节。这几方面的特性使函数成为多数编程语言的重要特性之一。 我们之前已经见过许多函数,现在让我们更彻底地探究一下函数。本章的运行示例是一个网络爬虫,它是Web搜索引擎的组件之一,负责抓取网页并分析页面包含的链接,将链接指向的页面...

Golang包(模块)的组织与管理

前言 在组织项目的过程中被坑了许久,为了日后更快从坑里爬出来,决定汇总一下今天学到的golang包、模块等结构的组织方式; 具体来说即为命名规范,包的组织,包的导入等方面; 命名规范 package go代码中必然会存在一个关键字:package package是一个包名的定义,比如我自己想写一个模块贡献给开源世界,源码必然放在一个go文件里面,现在我需要定义一个包名; ...

Go的复合数据类型

之前讨论了Go程序中的基础数据类型;它们就像宇宙中的原子一样。这部分介绍复合数据类型,复合数据类型是由基本数据类型以各种方式组合而构成的,就像分子由原子构成一样。接下来将重点讲解四种复合数据类型,分别是数组、slice、map和结构体。 另外末尾部分将演示如何将使用这些数据类型构成的结构化数据编码为JSON数据,从JSON数据转换为结构化数据,以及从模板生成HTML页面。 数组和结构体都...

Go的基本数据类型

Go的数据类型分四大类: 基础类型(basic type) 聚合类型(aggregate type) 引用类型(reference type) 接口类型(interface type)。 本章的主题是基础类型,包括数字(number)、字符串(string)和布尔型(boolean)。 聚合类型一数组(array,见4.1节)和结构体(struct,见4.4节)一是通...

Go语言介绍

Go是编译型的语言,Go的工具链将程序的源文件转变成机器相关的原生二进制指令。 这些工具可以通过单一的go命令配合其子命令进行使用。最简单的子命令是run,它将一个或多个以.go为后缀的源文件进行编译、链接,然后运行生成的可执行文件; go run helloworld.go # 一次性完成编译链接过程,然后运行 与之相对应的,我们也可以将将之编译输出为一个可复用的程序; go...

Go的入门与程序结构

内置名称 GO中函数、变量、常量、类型、语句标签和包的名称遵循一个简单的规则:名称的开头是一个字母(Unicode中的字符即可)或下划线,后面可以跟任意数量的字符、数字和下划线,并区分大小写。 内置关键字 GO有25个像if和switch这样的关键字,只能用在语法允许的地方,它们不能作为名称。 break default func interface se...

Q K V的理解

概念意义 首先从概念层面来理解,我们从信息检索系统中去类比,我们要在知乎搜索一篇关于自注意力的文章; 我们输入进去所要搜索的信息,即为Q,理解为查询Query。 知乎的搜索系统会给我们返回一系列结果,这些结果可能是文章的标题,可能是文章的内容,又或者是文章的分类标签信息,我们把这些称之为K,即关键字Key。 综合这些信息,推荐算法最终会给出最佳匹配的结果,该结果即为V,即Value...

Go配置

前言 网上诸多教程确实有一定的参考价值,但是在参考这些内容之时要注意是否过时,有条件尽可能去官网看英文原版,可以少走很多弯路; 问题汇总 路径问题(VS Code) 1. 提示gopls无法在工作区找到模块 报错具体内容: gopls was not able to find modules in your workspace. When outside of GOPATH,...