05 2021 档案

摘要:一、基本介绍 interfance类型可以定义一组方法,但是这些不需要实现,并且interface不能包含任何变量,到某个自定义类型要使用时,在根据具体情况把这些方法写出来 二、基本语法 type 接口名 interfance{ method1(参数列表)返回值列表 method2(参数列表)返回值 阅读全文
posted @ 2021-05-31 23:19 若雨蚂蚱 阅读(146) 评论(0) 推荐(0)
摘要:封装就是将抽象出来的字段和对字段的操作封装在一起,数据被保护在内部,程序的其他包只有通过授权的操作(方法),才能对字段进行操作。现实中对电视机的操作就是典型的封装。 1. 实现封装的步骤 将结构体、字段(属性)的首字母小写(不能导出,其他包不能使用,类似private) 给结构体所在的包提供一个工厂 阅读全文
posted @ 2021-05-31 22:39 若雨蚂蚱 阅读(131) 评论(0) 推荐(0)
摘要:当多个结构体存在相同的属性(字段)和方法时,可以从这些结构体中抽象出结构体,在该结构体中定义这些相同的属性和方法。其他结构体不需要重新定义这些属性和方法,只需嵌套该结构体的匿名结构体即可。也就是说在Golang中,如果一个struct嵌套了另一个结构体,那么这个结构体可以直接访问匿名结构体的字段和方 阅读全文
posted @ 2021-05-31 22:37 若雨蚂蚱 阅读(104) 评论(0) 推荐(0)
摘要:就是把一类事物的共有属性(字段)和行为(方法)提取出来,形成一个物理模板。这种研究问题的方法称为抽象。 例子: 银行账号都有卡号,密码和余额属性,且可以存款,取款,查询余额这些行为,我们将这些属性和行为提取出来,形成一个模板,用代码实现如下: 项目结构图: account.go package mo 阅读全文
posted @ 2021-05-31 22:14 若雨蚂蚱 阅读(146) 评论(0) 推荐(0)
摘要:一、抽象 就是把一类事物的共有属性(字段)和行为(方法)提取出来,形成一个物理模板。这种研究问题的方法称为抽象。 例子: 银行账号都有卡号,密码和余额属性,且可以存款,取款,查询余额这些行为,我们将这些属性和行为提取出来,形成一个模板,用代码实现如下: 项目结构图: account.go packa 阅读全文
posted @ 2021-05-27 23:01 若雨蚂蚱 阅读(155) 评论(0) 推荐(0)
摘要:一、说明 当结构体名的首字母为小写时,这时这个结构体只能在本包使用,而不能被其他包使用,但是我们在别的包中又希望可以使用这个结构体。由于go语言中没有构造函数,我们可以使用工厂模式来解决这个问题。 二、举例 需求:model包中student结构体首字母为小写,main包中需使用student结构体 阅读全文
posted @ 2021-05-27 21:29 若雨蚂蚱 阅读(212) 评论(0) 推荐(0)
摘要:一、基本说明 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。 二、结构体声明 type 结构体名称 struct{ field type field type } 例子: type Dog struct { Name string Age int Color string } 注:在创 阅读全文
posted @ 2021-05-24 23:33 若雨蚂蚱 阅读(157) 评论(0) 推荐(0)
摘要:Golang也支持面向对象编程(oop),但是和传统的面向对象有区别,并不是纯粹的面向对象语言,所以我们说Golang支持面向对象编程特性是比较准确的。 Golang没有类(class),Go语言的结构体(struct)和其他编程语言的类(class)有相同的地位,你可以理解Golang是基于str 阅读全文
posted @ 2021-05-24 21:18 若雨蚂蚱 阅读(206) 评论(0) 推荐(0)
摘要:一、基本介绍 map是key-value数据结构,是一种无序的键值对的集合。 二、基本语法 var 变量名 map[keytype]valuetype keytype可以是很多类型,比如bool,数字,string,指针,channel,还可以是包含前面几个类型的接口,结构体,数组,通常为int、s 阅读全文
posted @ 2021-05-19 23:08 若雨蚂蚱 阅读(173) 评论(0) 推荐(0)
摘要:一.推荐本地文本编辑器 typora 二.makdown语法 1.标题 一级标题:#+空格+标题 二级标题:##+空格+标题 三级标题:###+空格+标题 四级标题:####+空格+标题 五级标题:#####+空格+标题 六级标题:######+空格+标题 2.字体 加粗:**hello,world 阅读全文
posted @ 2021-05-19 20:56 若雨蚂蚱 阅读(155) 评论(0) 推荐(0)
摘要:一、基本介绍 切片是数组的一个引用,因此切片是引用类型,在进行传递时,遵守引用类型的机制 切片的使用和数组类似,如遍历切片,访问切片的元素和求切片长度len(slice)都一样。 切片的长度是可以变化的,因此切片是一个可以动态变化的数组 二、切片的定义 var 切片名 []类型 比如: var a 阅读全文
posted @ 2021-05-18 23:15 若雨蚂蚱 阅读(123) 评论(0) 推荐(0)
摘要:一、基本介绍 数组可以存放多个同一类型数据,数组也是一种数据类型,在Go中,数组是值类型。 二、数组的定义 var 数组名 [数组大小] 数据类型 例子: var a [3] int 三、数组的内存布局 package main import ( "fmt" ) func main() { var 阅读全文
posted @ 2021-05-16 11:26 若雨蚂蚱 阅读(153) 评论(0) 推荐(0)
摘要:一、基本说明 Go语言追求简洁优雅,所以,Go语言不支持传统的try...catch...finally这种处理。 Go中引入的处理方式为:defer,panic,recover 这个异常的使用场景可以这么简单的描述:Go中可以抛出一个panic异常,然后在defer中通过recover捕获这个异常 阅读全文
posted @ 2021-05-13 22:55 若雨蚂蚱 阅读(175) 评论(0) 推荐(0)
摘要:一、说明 Golang设计者为了编程方便,提供了一些函数,这些函数可以直接使用,我们称为Go的内置函数。 二、常用函数 1. len() func len(v Type) int 函数len返回 v 的长度 数组:v中元素的数量 数组指针:*v中元素的数量(v为nil时panic) 切片、映射:v中 阅读全文
posted @ 2021-05-13 22:14 若雨蚂蚱 阅读(402) 评论(0) 推荐(0)
摘要:一、常用函数 时间和时期相关函数,需要导入time包。time.Time,用于表示时间 1. 获取当前时间的方法 now := time.Now() // now的类型就是time.Time 2. 如何获取到其他的日期信息 package main import ( "fmt" "time" ) f 阅读全文
posted @ 2021-05-13 21:48 若雨蚂蚱 阅读(172) 评论(0) 推荐(0)
摘要:字符串常用函数 1. 统计字符串的长度,按字节len(str) // golang的编码统一为utf-8,(ascli的字符(字母和数字)占一个字节,汉字占三个字节) str := "hello上海" fmt.Println("str len=", len(str)) 输出结果: str len= 阅读全文
posted @ 2021-05-12 23:08 若雨蚂蚱 阅读(592) 评论(0) 推荐(0)
摘要:函数内部声明/定义的变量叫做局部变量,作用域仅限于函数内部 函数外声明/定义的变量叫做全局变量,作用域在整个包都有效,如果变量名首字母大写,则作用域在整个程序有效 如果变量的声明/定义在一个代码块里,比如if/for中,那么这个变量的作用域就在该代码块 阅读全文
posted @ 2021-05-12 21:44 若雨蚂蚱 阅读(94) 评论(0) 推荐(0)
摘要:一、基本介绍 延时机制,在函数中,程序员经常需要创建资源(比如:数据库连接、文件句柄、锁等),为了在函数执行完毕后,及时释放资源,Go的设计者提供defer 二、案例说明 package main import ( "fmt" ) func sum(a, b int) int { defer fmt 阅读全文
posted @ 2021-05-12 21:21 若雨蚂蚱 阅读(119) 评论(0) 推荐(0)
摘要:一、基本介绍 闭包就是一个函数和于其相关的引用环境组合的一个整体 二、案例演示 累计器 package main import ( "fmt" ) func AddUpper() func(int) int { n := 10 return func(x int) int { n = n + x r 阅读全文
posted @ 2021-05-11 23:16 若雨蚂蚱 阅读(164) 评论(0) 推荐(0)
摘要:一、基本介绍 Go支持匿名函数,如果我们某个函数只希望执行一次,可以考虑使用匿名函数,匿名函数也可以实现多次调用。 二、匿名函数使用方式一(常用) 在定义匿名函数时直接调用 package main import ( "fmt" ) func main() { res := func(a int, 阅读全文
posted @ 2021-05-11 22:53 若雨蚂蚱 阅读(618) 评论(0) 推荐(0)
摘要:一、基本介绍 每一个源文件都可以包含一个init函数,该函数会在main函数执行前,被Go运行框架调用,也就是说init函数会在main函数前调用。 二、案例说明 package main import ( "fmt" ) func main() { fmt.Println("main()...") 阅读全文
posted @ 2021-05-11 22:38 若雨蚂蚱 阅读(272) 评论(0) 推荐(0)
摘要:一、基本介绍 包的本质实际上就是创建不同的文件夹,来存放程序文件。 说明:go的每一个文件都属于一个包,也就是说以包的形式来管理文件和项目结果的 二、基本语法 打包基本语法 package 包名 引入包的基本语法 import "包的路径" 三、包的三大作用 区分相同名字的函数、变量等标识符 当程序 阅读全文
posted @ 2021-05-09 14:00 若雨蚂蚱 阅读(151) 评论(0) 推荐(0)
摘要:一、基本介绍 为完成某一功能的程序语句的集合,称为函数,分为自定义函数和系统函数。 二、基本语法 func 函数名 (形参列表) (返回值类型列表) { 执行语法... return 返回值列表 } 例子: // 函数返回两个数的最大值 func max(num1 int, num2 int) in 阅读全文
posted @ 2021-05-09 12:56 若雨蚂蚱 阅读(112) 评论(0) 推荐(0)
摘要:一、基本介绍 goto语句可以无条件转移到程序中指定的行 二、基本语法 goto label; .. . label: statement; 三、控制流程示意图 四、注意细节 goto语言通常与条件语句配合使用,可以来实现条件转移,跳出循环等功能 一般不主张使用goto语句,以免造成程序流程紊乱,使 阅读全文
posted @ 2021-05-09 11:50 若雨蚂蚱 阅读(398) 评论(0) 推荐(0)
摘要:一、基本介绍 用于结束本次循环,继续执行下一次循环 二、基本语法 continue; 三、流程示意图 例子: package main import ( "fmt" ) func main() { for i := 1; i <= 10; i++ { if i == 2 { continue } f 阅读全文
posted @ 2021-05-09 11:24 若雨蚂蚱 阅读(180) 评论(0) 推荐(0)
摘要:一、基本介绍 break用于终止某个语句块的执行,用于中断当前for循环或者跳出switch语句 二、基本语法 break; 三、流程示意图 案例: 随机生成11个0—100的整数 package main import ( "fmt" "math/rand" "time" ) func main( 阅读全文
posted @ 2021-05-09 10:59 若雨蚂蚱 阅读(214) 评论(0) 推荐(0)
摘要:一、基本介绍 让你的代码可以重复执行 二、基本语法 for 循环变量初始化;循环条件;循环变量迭代 { 循环体 } 说明:for循环执行的顺序: 循环变量初始化 循环条件 如果循环条件为真,执行循环体,若循环条件为假则退出循环 循环变量迭代 反复执行2,3, 4步骤 三、执行流程图 四、注意细节 循 阅读全文
posted @ 2021-05-07 21:06 若雨蚂蚱 阅读(420) 评论(0) 推荐(0)
摘要:一、if语句 基本语法: if 条件表达式 { 执行语句块 } 说明:当条件表达式为true时,就会执行里的代码 注意:时必须有的,不能省略,否则编译不通过 执行流程图如下所示: 使用细节:if还有一个强大的地方就是条件表达式那里允许声明一个变量,这个变量的作用域只在该条件逻辑块内,其他地方不起作用 阅读全文
posted @ 2021-05-06 22:33 若雨蚂蚱 阅读(167) 评论(0) 推荐(0)
摘要:一、二进制 二进制是逢二进一的进位制,0,1是基本算符 在计算机内部,运行各种运算时,都是以二进制的方式运行 二、原码、反码、补码 对于有符号的而言: 二进制的最高位是符号位,0表示正数,1表示负数 正数的原码、反码、补码都一样 负数的反码=它的原符号位不变,其他位取反(0->1,1->0) 负数的 阅读全文
posted @ 2021-05-05 22:01 若雨蚂蚱 阅读(275) 评论(0) 推荐(0)
摘要:一、进制介绍 对于整数,有四种表示方式: 二进制:0,1 满2进1 八进制:0~7 满8进1 十进制:0~9 满10进1,以数字0开头表示 十六进制:09及AF 满15进1,以0X或0x开头表示。此处的A~F不区分大小写 进制图示: |十进制|十六进制|八进制|二进制| | | | | | |0|0 阅读全文
posted @ 2021-05-05 20:09 若雨蚂蚱 阅读(400) 评论(0) 推荐(0)
摘要:一、常见的值类型和引用类型 值类型:基本数据类型int系列,float系列,bool,string,数组,结构体struct。 引用类型:指针,切片slice,map,interface,管道chan等都是引用类型 二、值类型和引用类型使用得特点 值类型变量直接存储值,内存通常在栈中分配。内存示意图 阅读全文
posted @ 2021-05-05 11:08 若雨蚂蚱 阅读(292) 评论(0) 推荐(0)
摘要:一、什么是指针 一个指针变量指向了一个值的内存地址。 二、基本介绍 基本数据类型的变量存的是值,也叫值类型 指针类型的变量存的是一个地址,这个地址指向的空间存的才是值。例如:var ptr *int 获取变量的地址,用&,例如:var num int,获取num的地址,&num 获取指针类型变量所指 阅读全文
posted @ 2021-05-05 09:39 若雨蚂蚱 阅读(116) 评论(0) 推荐(0)
摘要:一、介绍 Golang和java/c不同,Go在不同类型的变量之间赋值时需要显示转换,也就是golang中数据类型不能自动转换。 二、基本语法 表达式:T(v) 含义:将值v转换为类型T T:数据类型,比如int32,int64,float32等 v:需要转换的变量 例如: var i int32 阅读全文
posted @ 2021-05-04 15:26 若雨蚂蚱 阅读(1597) 评论(0) 推荐(0)
摘要:一、数据类型分类 在Go语言中数据类型用于声明函数和变量。每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间,大致分类如下图: 二、基本数据类型 1.整数类型 | 类型 |有无符号|占用存储空间|表数范围|备注| | | | | | | |int8|有|1字节|-128 ~ 127| 阅读全文
posted @ 2021-05-02 10:21 若雨蚂蚱 阅读(238) 评论(0) 推荐(0)