随笔分类 -  Golang

1
Go语言相关知识....
摘要:net/http包 net/http是Go语言的内置包,它可以来创建HTTP客户端与服务端。 并且由net/http包创建的服务端性能十分高效,甚至不用nginx部署。 client端 GET请求 以下示例将展示如何使用net/http包来发送一次GET请求。 package main import 阅读全文
posted @ 2020-10-16 14:21 云崖先生 阅读(943) 评论(0) 推荐(0)
摘要:socket socket应该是各种语言中网络编程的基础,它介于应用层与传输层之间,只要学会使用它的接口即可。 TCP 以下建立两台机器互相通信。 Server 以下是Go语言中通过socket和goroutine编写的一个非常简单的服务端。 流程如下: 建立与服务端的链接 进行数据收发 关闭链接 阅读全文
posted @ 2020-10-14 17:01 云崖先生 阅读(1776) 评论(0) 推荐(0)
摘要:goroutine 在其他的编程语言中,线程调度是交由os来进行处理的。 但是在Go语言中,会对此做一层封装,Go语言中的并发由goroutine来实现,它类似于用户态的线程,更类似于其他语言中的协程。它是交由Go语言中的runtime运行时来进行调度处理,这使得Go语言中的并发性能非常之高。 一个 阅读全文
posted @ 2020-10-14 15:16 云崖先生 阅读(1183) 评论(6) 推荐(5)
摘要:strconv包 该包主要实现基本数据类型与其字符串表示的转换。 常用函数为Atoi()、Itia()、parse系列、format系列、append系列。 更多函数请查看官方文档。 string与int类型转换 Atoi() 该函数用于将字符串类型的整数转换为int类型,函数签名如下: func 阅读全文
posted @ 2020-10-12 21:45 云崖先生 阅读(275) 评论(0) 推荐(0)
摘要:变量机制 在Go语言中,变量分为两部分。 类型信息:预先定义好的变量类型,属于元信息 值信息:程序运行过程中可变化的一部分信息 反射介绍 反射是指在程序运行期对程序本身进行访问和修改的能力。程序在编译时,变量被转换为内存地址,变量名不会被编译器写入到可执行部分。在运行程序时,程序无法获取自身的信息。 阅读全文
posted @ 2020-10-11 18:02 云崖先生 阅读(730) 评论(0) 推荐(0)
摘要:日志库 自定义一个日志库。 知识储备 runtime.Caller() 该方法能够获取到打印的位置,文件的信息,行数等。 以下是该方法的使用,不必纠结太多,照着用就行。 唯一注意的是caller()中值的放入,该值会影响行数的显示,多测试几遍你就大概明白了。 package main import 阅读全文
posted @ 2020-10-11 18:00 云崖先生 阅读(659) 评论(0) 推荐(0)
摘要:path/filepath 标准库path中有的功能filepath全部具备, 所以使用filepath即可。 isABS() 判断一个路径是不是绝对路径。 package main import ( "fmt" "path/filepath" ) func main() { result := f 阅读全文
posted @ 2020-10-09 17:15 云崖先生 阅读(795) 评论(0) 推荐(0)
摘要:time包 time包提供了时间显示与测量所使用的函数。 时间类型 time.Time类型表示时间,使用time.now()函数获取当前时间对象。对当前时间使用以下函数可获取不同的时间字段。 方法描述 Year() 获取年 Month() 获取月 Day() 获取日 Hour() 获取时 Secon 阅读全文
posted @ 2020-10-09 14:50 云崖先生 阅读(202) 评论(0) 推荐(0)
摘要:文件操作 作为后端语言,Go通过os包提供了对文件的操作。 同时,使用bufio与ioutil也可以进行文件操作,三者均有自身的优劣势结合不同的需求使用不同的包来进行操作,将会让你的事半功倍。 文件分为普通文件和二进制文件,使用二进制文件时应该按照byte进行读取。 OpenFile 在os包中,有 阅读全文
posted @ 2020-10-09 12:30 云崖先生 阅读(747) 评论(0) 推荐(0)
摘要:包的作用 Go语言中的包是源码的集合,是一种高级的代码复用方案。 在Go语言中拥有很多自带的包,如fmt、os等。 我们也可以进行一个自定义的包。 定义包 一个文件只能归属于一个包。 如main旧是一个可执行文件包,编译main包会得到一个可执行文件,如果是非main包则不会得到一个可执行文件。 包 阅读全文
posted @ 2020-10-09 11:21 云崖先生 阅读(220) 评论(0) 推荐(0)
摘要:接口作用 Go语言中的接口是一种类型,类似于Python中的抽象基类。 Go语言中使用接口来体现多态,是duck-type的一种体现。 如,只要一个东西会叫,会走,那么我们就可以将它定义为一个动物的接口。 接口定义 Go中提倡面向接口编程,以下是接口的定义。 type 接口类型名 interface 阅读全文
posted @ 2020-10-08 14:51 云崖先生 阅读(1185) 评论(2) 推荐(0)
摘要:类型别名&定制 类型别名 类型别名是Go的1.9版本中新添加的功能。 大概意思就是给一个类型取一个别名,小名等,但是这个别名还是指向的相同类型。 如uint32的别名rune,其底层还是uint32。 如uint8的别名byte,使用byte实际上还是uint8 别名的作用在于在编程中更方便的进行使 阅读全文
posted @ 2020-10-07 16:42 云崖先生 阅读(260) 评论(0) 推荐(0)
摘要:map Go语言中的map是一种无序的,基于key-value的数据解构,在Go语言中map是引用类型,因此必须初始化后才能使用。 以下示例将展示如何声明一个map类型,以及如何简单使用。 需要注意的是map的cap可以进行自动扩容,但是我们应该在初始化map的时候就给好适当的容量以提高性能。 pa 阅读全文
posted @ 2020-10-01 16:49 云崖先生 阅读(145) 评论(0) 推荐(0)
摘要:Go指针 Go语言中的指针非常简单,没有偏移和运算,只需要记住两个符号。&取变量地址与*根据地址取值。 以下是一个简单的示例: package main import ( "fmt" ) func main() { var arr = [3]string{"一", "二", "三"} var add 阅读全文
posted @ 2020-10-01 13:32 云崖先生 阅读(147) 评论(0) 推荐(0)
摘要:数组相关 在Go语言中,数组是一种容器相关的数据类型,用于存放多种相同类型的数据。 数组定义 在定义数组时,必须定义数组的类型以及长度,数组一经定义不可进行改变。 同时,数组的长度是按照元素个数进行统计的,并且数组长度是数组的一部分。 package main import ( "fmt" ) fu 阅读全文
posted @ 2020-09-30 12:47 云崖先生 阅读(204) 评论(0) 推荐(0)
摘要:if/else 基本使用 if/else应该是每个编程语言中都具备的基本分支结构。 需要注意的是if||else与{要放在同一行上,否则会抛出异常。 另外,当多个else if出现时,不同分支只会执行一个。 if 表达式1 { 分支1 } else if 表达式2 { 分支2 } else{ 分支3 阅读全文
posted @ 2020-09-30 01:06 云崖先生 阅读(162) 评论(0) 推荐(0)
摘要:算数运算符 在Go语言中,++与--不属于运算符范畴,而是属于单独的语句。 运算符描述 + 相加 - 相减 * 相乘 / 相除 % 求余 关系运算符 运算符描述 == 检查两个值是否相等,如果相等返回 True 否则返回 False。 != 检查两个值是否不相等,如果不相等返回 True 否则返回 阅读全文
posted @ 2020-09-29 20:13 云崖先生 阅读(167) 评论(0) 推荐(0)
摘要:整形 标准整形 标准整形是按长度进行分类的,其中uint8为byte型,int16为C语言中的short型,int64为C语言中的long类型。 类型描述 uint8 无符号 8位整型 (0 到 255) uint16 无符号 16位整型 (0 到 65535) uint32 无符号 32位整型 ( 阅读全文
posted @ 2020-09-29 15:49 云崖先生 阅读(652) 评论(0) 推荐(0)
摘要:基础结构 在Go语言中,基础结构如下: package main // 当该文件作为一个可执行文件,而不是一个模块时,必须导入main import "fmt" // 入口函数外只能书写一些全局的变量、常量、函数名等标识符 func main(){ fmt.Println("HELLO,WORLD" 阅读全文
posted @ 2020-09-28 22:55 云崖先生 阅读(202) 评论(0) 推荐(0)
摘要:Go介绍 Go语言被誉为21世纪的C语言,由Google公司开发,天生对高并发有着优秀的支持。并且语法极度简洁,关键字仅有25个。 所以使用Go语言时你不用担心自己写的和大神写的有着天差地别,Go语言开发者所书写的代码大家基本都是能看得懂的。 值得一提的是Go的跨平台性,Go语言跨平台性强到令人发指 阅读全文
posted @ 2020-09-28 20:49 云崖先生 阅读(771) 评论(0) 推荐(0)

1