随笔分类 - Go-basics
摘要:bufio 是通过缓冲来提高效率。 io操作本身的效率并不低,低的是频繁的访问本地磁盘的文件。所以bufio就提供了缓冲区(分配一块内存),读和写都先在缓冲区中,最后再读写文件,来降低访问本地磁盘的次数,从而提高效率。 简单的说就是,把文件读取进缓冲(内存)之后再读取的时候就可以避免文件系统的io
阅读全文
posted @ 2020-02-02 10:56
1769987233
摘要:1. seek package main import ( "os" "log" "fmt" "io" ) func main() { /* Seek(offset int64, whence int) (int64, error),设置指针光标的位置 第一个参数:偏移量 第二个参数:如何设置 0:
阅读全文
posted @ 2020-02-02 10:28
1769987233
摘要:package main import ( "os" "io" "fmt" "io/ioutil" ) func main() { /* 拷贝文件: */ srcFile := "/Users/ruby/Documents/pro/a/guliang.jpeg" destFile := "gulia
阅读全文
posted @ 2020-02-02 10:10
1769987233
摘要:I/O操作也叫输入输出操作。其中I是指Input,O是指Output,用于读或者写数据的,有些语言中也叫流操作,是指数据通信的通道。 Golang 标准库对 IO 的抽象非常精巧,各个组件可以随意组合,可以作为接口设计的典范。 1. 读取数据 package main import ( "os" "
阅读全文
posted @ 2020-02-02 09:01
1769987233
摘要:1. FileInfo package main import ( "os" "fmt" ) func main() { /* FileInfo:文件信息 interface Name(),文件名 Size(),文件大小,字节为单位 IsDir(),是否是目录 ModTime(),修改时间 Mode
阅读全文
posted @ 2020-02-02 08:25
1769987233
摘要:package main import ( "time" "fmt" "math/rand" ) func main() { /* time包: 1年=365天,day 1天=24小时,hour 1小时=60分钟,minute 1分钟=60秒,second 1秒钟=1000毫秒,millisecon
阅读全文
posted @ 2020-02-02 08:03
1769987233
摘要:1、 main包 Go 语言的入口 main() 函数所在的包(package)叫 main,main 包想要引用别的代码,需要import导入! 2、 package src 目录是以代码包的形式组织并保存 Go 源码文件的。每个代码包都和 src 目录下的文件夹一一对应。每个子目录都是一个代码包
阅读全文
posted @ 2020-02-02 07:24
1769987233
摘要:1. error package main import ( "errors" "fmt" ) func main() { /* error:内置的数据类型,内置的接口 定义方法:Error() string 使用go语言提供好的包: errors包下的函数:New(),创建一个error对象 fm
阅读全文
posted @ 2020-02-02 05:51
1769987233
摘要:1. type的定义和使用 Go语言支持函数式编程,可以使用高阶编程语法。一个函数可以作为另一个函数的参数,也可以作为另一个函数的返回值,那么在定义这个高阶函数的时候,如果函数的类型比较复杂,我们可以使用type来定义这个函数的类型。 byte和rune: 在 Go 1.9 版本之前的内建类型定义的
阅读全文
posted @ 2020-02-02 04:37
1769987233
摘要:1. 实现接口 接口的作用就是对外隐藏实现。 Golang 中没有 class 的概念,而是通过 interface 类型转换支持在动态类型语言中常见的鸭子类型从而达到运行时多态的效果。 简而言之,interface就是一组method的集合。 只要一个类型A实现了接口I中的method,那么在之后
阅读全文
posted @ 2020-02-01 09:13
1769987233
摘要:1. 方法的定义 package main import "fmt" func main() { /* 方法:method 一个方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针。 所有给定类型的方法属于该类型的方法集 语法: //接收者表示调用该方法的棘突类型
阅读全文
posted @ 2020-02-01 07:59
1769987233
摘要:1. 结构体的定义和初始化 package main import "fmt" func main() { /* 结构体:是由一系列具有相同类型或不同类型的数据构成的数据集合 结构体成员是由一系列的成员变量构成,这些成员变量也被称为“字段” */ //1.方法一 var p1 Person fmt.
阅读全文
posted @ 2020-02-01 07:56
1769987233
摘要:1. 指针 package main import "fmt" func main() { /* 指针:pointer 存储了另一个变量的内存地址的变量。 */ //1.定义一个int类型的变量 a := 10 fmt.Println("a的数值是:",a) //10 fmt.Printf("%T\
阅读全文
posted @ 2020-02-01 07:42
1769987233
摘要:1. 函数的数据类型 package main import "fmt" func main() { /* go语言的数据类型: 基本数据类型: int,float,bool,string 复合数据类型: array,slice,map,function,pointer,struct,interfa
阅读全文
posted @ 2020-02-01 06:55
1769987233
摘要:package main import "fmt" func main() { //外围函数 /* defer的词义:"延迟","推迟" 在go语言中,使用defer关键字来延迟一个函数或者方法的执行。 1.defer函数或方法:一个函数或方法的执行被延迟了。 2.defer的用法: A:对象.cl
阅读全文
posted @ 2020-02-01 06:29
1769987233
摘要:package main import "fmt" func main() { /* 递归函数(recursion):一个函数自己调用自己,就叫做递归函数。 递归函数要有一个出口,逐渐的向出口靠近 */ //1.求1-5的和 sum := getSum(5) fmt.Println(sum) //2
阅读全文
posted @ 2020-02-01 06:19
1769987233
摘要:package main import "fmt" //全局变量的定义 //num3 := 1000//不支持简短定义的写法 var num3 = 1000 func main() { /* 作用域:变量可以使用的范围。 局部变量:函数内部定义的变量,就叫做局部变量。 变量在哪里定义,就只能在哪个范
阅读全文
posted @ 2020-02-01 06:14
1769987233
摘要:1. 函数的定义和使用 package main import "fmt" func main() { //程序的入口,是一个特殊的函数 /* 函数:function 一、概念: 具有特定功能的代码,可以被多次调用执行。 二、意义: 1.可以避免重复的代码 2.增强程序的扩展性 三、使用 step1
阅读全文
posted @ 2020-02-01 06:12
1769987233
摘要:1. 字符串的声明是使用 package main import "fmt" func main() { /* Go中的字符串是一个字节的切片。 可以通过将其内容封装在“”中来创建字符串。Go中的字符串是Unicode兼容的,并且是UTF-8编码的。 字符串是一些字节的集合。 理解为一个字符的序列。
阅读全文
posted @ 2020-02-01 05:48
1769987233
摘要:1. map的创建和使用 key不能是引用类型,key要求是不变的,引用类型的地址不变,但是值会改变 package main import "fmt" func main() { /* map:映射,是一种专门用于存储键值对的集合。属于引用类型 存储特点: A:存储的是无序的键值对 B:键不能重复
阅读全文
posted @ 2020-02-01 04:45
1769987233

浙公网安备 33010602011771号