随笔分类 -  golang

摘要:值类型和引用类型 1、值类型:变量直接存储值,内存通常在栈中分配。 基本数据类型int、float、bool、string以及数组和struct。 2、引用类型:变量存储的是一个地址,这个地址存储最终的值。内存通常在堆上分配。通过GC回收。 指针、slice(切片)、map、chan(管道)、int 阅读全文
posted @ 2018-11-24 10:32 shy车队破风手 阅读(442) 评论(0) 推荐(0)
摘要:time 1、time包 2、time.Time类型, 用来表示时间 3、取当前时间, now := time.Now() 4、time.Now().Day(),time.Now().Minute(),time.Now().Month(),time.Now().Year(), 5、格式化,fmt.P 阅读全文
posted @ 2018-11-24 10:31 shy车队破风手 阅读(344) 评论(0) 推荐(0)
摘要:一、golang语言特性 1. 垃圾回收 a、内存自动回收,再也不需要开发人员管理内存 //开发代码中不能存在无引用的变量,不然代码出错 b、开发人员专注业务实现,降低了心智负担 c、只需要new分配内存,不需要释放 2. 天然并发 a、从语言层面支持并发,非常简单 b、goroute,轻量级线程, 阅读全文
posted @ 2018-11-24 10:23 shy车队破风手 阅读(524) 评论(0) 推荐(0)
摘要:结构体 结构体的声明: 结构体的实例化第一种: 结构体实例化第二种: 结构体的实例化第二种:(p 由Point类型取地址后,形成类型为*Point的实例。) 结构体的实例化第三种:(p 由Point类型取地址后,形成类型为*Point的实例。) 匿名的结构体: 键值对初始化部分是可选的。 阅读全文
posted @ 2018-11-18 18:45 shy车队破风手 阅读(162) 评论(0) 推荐(0)
摘要:defer(延迟执行语句) 多个延迟执行语句的处理顺序 结果分析如下: 代码的延迟顺序与最终的执行顺序是反向的。 延迟调用是在 defer 所在函数结束时进行,函数结束可以是正常返回时,也可以是发生宕机时。 使用延迟执行语句在函数退出时释放资源 处理业务或逻辑中涉及成对的操作是一件比较烦琐的事情,比 阅读全文
posted @ 2018-11-18 16:30 shy车队破风手 阅读(242) 评论(0) 推荐(0)
摘要:函数格式: 参数类型的简写形式: 在参数列表中,如有多个参数变量,则以逗号分隔;如果相邻变量是同类型,则可以将类型省略 函数的多返回值: 1) 同一种类型返回值 2) 带有变量名的返回值 命名的返回值变量的默认值为类型的默认值,即数值为 0,字符串为空字符串,布尔为 false、指针为 nil 等。 阅读全文
posted @ 2018-11-18 15:55 shy车队破风手 阅读(284) 评论(0) 推荐(0)
摘要:基础的数据类型: 复合类型: 一、布尔类型 布尔类型不能接受其他类型的赋值,不支持自动或强制的类型转换。 二、字符类型 三、数组类型 声明变量及初始化第一种: 声明变量及初始化第二种: 四、切片 切片借助数组的创建: 直接创建: len(a):数组切片中当前存储的元素个数。cap(a):返回的是数组 阅读全文
posted @ 2018-11-18 10:49 shy车队破风手 阅读(234) 评论(0) 推荐(0)
摘要:原子操作 互斥锁 读写锁 阅读全文
posted @ 2018-03-25 16:39 shy车队破风手 阅读(809) 评论(0) 推荐(0)
摘要:一、项目背景 二、解决方案 三、面临的问题 四、业界方案ELK 五、elk方案问题 六、日志收集系统设计 七、各组件介绍 7.1 kafka应用场景 1.异步处理, 把非关键流程异步化,提高系统的响应时间和健壮性 2.应用解耦,通过消息队列 3.流量削峰 7.2 zookeeper应用场景 2.配置 阅读全文
posted @ 2018-03-18 17:23 shy车队破风手 阅读(903) 评论(0) 推荐(0)
摘要:一、安装与使用 go get github.com/astaxie/beego 二、beego中的组件 三、Beego执行流程 四、beego目录结构 conf配置文件 controllers控制台 main入口函数 model业务逻辑 static静态文件 view视图 五、bee工具安装 go 阅读全文
posted @ 2018-03-17 14:44 shy车队破风手 阅读(565) 评论(0) 推荐(0)
摘要:1、mysql编程 a. 安装sqlx go get github.com/jmoiron/sqlx b. 链接mysql database, err := sqlx.Open("mysql", "root:@tcp(127.0.0.1:3306)/test") 2、mysql相关操作 插入: im 阅读全文
posted @ 2018-03-10 18:55 shy车队破风手 阅读(201) 评论(0) 推荐(0)
摘要:一、HTTP 1.http编程(http是文本协议,socket是二进制协议) a.Go原生支持http,import(“net/http”) b.Go的http服务性能和nginx 比较接近 c. 几行代码就可以实现 一个web服务 http请求包 http响应包 发送http请求 package 阅读全文
posted @ 2018-02-12 09:41 shy车队破风手 阅读(791) 评论(0) 推荐(0)
摘要:tcp编程(需要建立连接,三次握手,四次挥手,然后发送信息流,数据包是有序的) udp编程(知道IP、端口直接发送数据,数据包可能是无序的) 1、客户端和服务器客 socket编程 1.服务端的处理流程 a.监听端口 b.接收客户端的链接 c.创建goroutine,处理该链接 2.客户端的处理流程 阅读全文
posted @ 2018-02-04 22:58 shy车队破风手 阅读(372) 评论(0) 推荐(0)
摘要:Goroutine(轻量级的线程,开线程没有数量限制) 1.进程和线程 A.进程是程序在操作系统中的一次执行过程,系统进行资源分配和调度的一个独立单位。 B.线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。 C.一个进程可以创建和撤销多个线程;同一个进程 阅读全文
posted @ 2018-02-03 17:50 shy车队破风手 阅读(1521) 评论(0) 推荐(0)
摘要:1、终端读写 操作终端相关 文件句柄常量 os.Stdin:标准输入 os.Stdout:标准输出 os.Stderr:标准错误输出 package main import ( "fmt" ) var ( firstName, lastName, s string i int f float32 i 阅读全文
posted @ 2018-01-21 22:56 shy车队破风手 阅读(245) 评论(0) 推荐(0)
摘要:接口 1、定义 Interface类型可以定义一组方法,用来表示一个对象的行为特征。 interface不能包含任何变量。 2、 interface类型是引用类型 3、接口实现 a. Golang中的接口,不需要显示的实现。只要 一个对象,实现了接口类型中的所有方法,那么这个对象就实现这个接口。 b 阅读全文
posted @ 2018-01-14 17:12 shy车队破风手 阅读(273) 评论(0) 推荐(0)
摘要:1. 用来自定义复杂数据结构2.struct 里面可以包含多个字段(属性),字段可以是任意类型3.struct类型可以定义方法,注意和函数的区分4.struct类型是值类型5.struct类型可以嵌套6.Go语 言没有class类型,只有struct类型 1. struct 声明: 2.struct 阅读全文
posted @ 2018-01-07 18:12 shy车队破风手 阅读(394) 评论(0) 推荐(0)
摘要:冒泡排序: 选择排序: 插入排序: 快速排序: 阅读全文
posted @ 2018-01-07 16:06 shy车队破风手 阅读(202) 评论(0) 推荐(0)
摘要:指针类型 普通类型,变量量存的就是值,也叫值类型。指针类型存的是地址 获取变量量的地址, 用&, 比如: var a int, 获取a的地址:&a 指针类型,变量量存的是一个地址,这个地址存的才是值 获取指针类型所指向的值,使用:*, 比如:var *p int, 使用*p获取p指向的值 packa 阅读全文
posted @ 2018-01-01 21:40 shy车队破风手 阅读(279) 评论(0) 推荐(0)
摘要:字符串: 字符串表示两种方式: 1)" "双引号 可以包含控制字符 2)`` 反引号 所有字符都是原样输出 字符串的常用操作: 长度:len(str) 拼接:+ , fmt.Sprintf() 分割:strings.Split() 包含:strings.Contains() 前缀或后缀判断:stri 阅读全文
posted @ 2017-12-15 23:46 shy车队破风手 阅读(427) 评论(0) 推荐(0)