引入 我们写了一段函数或者一个模块,我们该怎么确认他的运行结果是正确的呢? 当然我们有最简单粗暴的方法,就是直接调用该函数,看实际输出结果和预期结果是否一致,但是这样很不方便,我们在main函数里面调用,如果项目正在运行,需要停止项目,同时我们要测试多模块的时候需要调用很多函数,非常麻烦。 我们为了优化传统的测试方式,Go引入了testing框架和…
基本介绍 是一种轻量级的数据交换格式,易于人阅读和编写的同时也利于机器的解析和生成,目前已经成为主流的的数据格式,任何数据类型都可以用json来表示。 通常程序再网络传输时先将数据序列化成json字符串,接收方获得json字符串后再进行反序列化回复成原来的数据。 JSON键值对是用来保存数据的一种方式,键值组合中键写在前面用双引号包裹,用冒号分隔,…
文件处理 打开文件和关闭文件 核心 API 打开:os.Open(path)(只读)、os.OpenFile(path, flag, perm) 关闭:defer file.Close() 按行读取示例 f, err := os.Open("test.txt") if err != nil { &nb…
前言 按理来说,OOP编程的三大特性,前面讲完了两个,应该下一个就是多态,但是Golang中 的多态就是通过接口来实现的,所以我们先讲一下接口。 接口(interface) 接口的设计在Golang中是大量存在的,Golang面向对象的核心就是接口编程,Golang与其他的语言相比也是很有特色。 快速入门 我们这里不讲细节,就感受一下,接口是怎么用…
抽象 抽象?博主不玩抽象谢谢》》》 搞错了,再来 在OOP编程中,抽象是一个很重要的思想,就是就是把现实世界中的复杂事物,用简洁、清晰的模型表达出来,隐藏不必要的实现细节,只暴露必要的接口。 虽然但是,只是提一嘴,大家自行体会 封装 封装就是把抽象出来的字段和对字段的操作封装在一起,数据被保护在内部,程序的其他包只有通过被授权的操作,才能对字段进行…
前言 emmm为什么要写前言呢,因为这以及不知道第几次开始学面向对象了,哎,面向了这么多次还是没对象怎么办())))) 概述 Go也支持面向对象编程,但是和传统的面向对象编程有区别,并不是纯粹的面向对象语言,和Java C++相比做了很多简化,所以我们说Golang支持面向对象编程特性是比较准确的。 Golang里面没有类,Go语言的结构体和其他语…
map 是一种键值对数据结构,又称为字段或者关联数组,类似于其他编程语言中的集合。 声明 基本语法: // 方式一:直接声明 + make 初始化 var myMap map[string]int myMap = make(map[string]int) // 方式二:直接 m…
数组 数组可以存放多个同一类型数据,在Golang中数组是值类型。 定义方式&简单操作 // 声明一个长度为5的整型数组 var arr [5]int // 初始化 arr = [5]int{1, 2, 3, 4, 5} //进行数值修改 arr…
字符串中常用的系统函数 统计字符串的长度(按字节len(str)) package main import "fmt" func main() { str := "ttdr" fmt.Println("str len = ", len(str)) &nb…
函数 讲函数之前,我们依旧通过需求来引出概念 需求: 输入两个数,再输入一个运算符(+,-,*,/),得到结果 先使用传统的方式来解决: package main import "fmt" func main() { var n1, n2, res float64 …