摘要: 现在我们几乎每天都在使用互联网,我们前面已经学习了如何编写Go语言程序,但是如何才能让我们的程序通过网络相互通信呢?本章我们就一起学习下Go语言中的网络编程。关于网络编程其实是一个庞大的领域,本文只是简单的演示了如何使用net包进行TCP和UDP通信。如需了解详细的网络编程自行检索和阅读专业资料。 阅读全文
posted @ 2022-05-05 17:37 比特边界 阅读(635) 评论(0) 推荐(0) 编辑
摘要: 并发是编程里面一个非常重要的概念,Go语言在语言层面天生支持并发,这也是Go语言流行的一个重要原因。 一、并行与并发 并发:同一时间段内执行多个任务。 并行:同一时刻执行福哦个任务。 Go语言的并发通过goroutine实现。goroutine类似于线程,术语用户态的线程,我们可以根据需要创建成千上 阅读全文
posted @ 2022-05-05 17:27 比特边界 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 变量的内在机制 Go语言中的变量是分为两部分的: 类型信息:预先定义好的元信息 值信息:程序运行过程中可以动态变化的 反射介绍 反射是指在程序运行期对程序本身进行访问和修改的能力。程序在编译时,变量被转换为内存地址,变量名不会被编译器写入到可执行部分。在运行程序时,程序无法获取自身信息。 支持反射的 阅读全文
posted @ 2022-05-05 17:01 比特边界 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体对象来实现规范的细节。 一、接口类型 在Go语言中接口(interface)是一种类型,一种抽象的类型。 interface是一组method的集合,是duck-type programming的一种体现。接口做的事情就像是 阅读全文
posted @ 2022-05-05 16:38 比特边界 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 在工程化的Go语言开发项目中,Go语言的源码复用是建立在包(package)基础之上的。本文介绍了Go语言中如何定义包,如何导出包的内容及如何导入其他包。 一、包介绍 包(package)是多个Go源码的集合,是一种高级的代码复用方案,Go语言为我们提供了很多内置包,如fmt、os、io等。 二、定 阅读全文
posted @ 2022-05-05 13:55 比特边界 阅读(122) 评论(0) 推荐(0) 编辑
摘要: Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念,Go语言中通过结构体的内嵌在配置接口比面向对象具有更高的扩展性和灵活性。 类型别名和自定义类型 一、自定义类型 在Go语言中有一些基本色数据类型,如string、整型、浮点型、布尔等数据类型,Go语言中可以使用type关键字来定义自定 阅读全文
posted @ 2022-05-05 13:28 比特边界 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 区别于C/C++中的指针,Go语言中的指针不能及逆行偏移和运算 ,是安全指针。 要搞明白Go语言中的指针需要先知道3个概念:指针地址、指针类型和指针取值。 Go语言中的指针 任何程序数据载入内存后,在内存都有他们的地址,这就是指针。而为了保存一个数据在内存中的地址,我们就需要指针变量。 比如,“永远 阅读全文
posted @ 2022-05-05 13:12 比特边界 阅读(110) 评论(0) 推荐(0) 编辑
摘要: 函数是组织好的、可重复使用的、用于执行指定任务的代码块。本文介绍了Go语言中函数的相关内容。 Go语言中支持函数、匿名函数和闭包,并且函数在Go语言中属于“一等公民”。 一、函数的定义 Go语言中定义函数使用func关键字,具体格式如下: Func 函数名(参数)(返回值){ 函数体 } 其中: 函 阅读全文
posted @ 2022-05-05 11:14 比特边界 阅读(159) 评论(0) 推荐(0) 编辑
摘要: Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现。 map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才可以使用。 一、map定义 Go语言中 map的定义语法如下: map[KeyType]ValueType 其中, KeyType: 阅读全文
posted @ 2022-05-05 09:35 比特边界 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 本文主要介绍Go语言中切片(slice)及它的基本使用。 因为数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性。 例如: func arraySum(x [3]int) int{ sum := 0 for _, v := range x{ sum = sum + v } ret 阅读全文
posted @ 2022-05-04 18:28 比特边界 阅读(167) 评论(0) 推荐(0) 编辑