知识点
1. Go语言简介
2. Go语言基本语法
3. Go语言流程控制
4. Go语言函数
5. Go语言容器
6. Go语言结构体
7. Go语言接口
8. Go语言反射
9. Go语言并发
开
第一个go程序——HelloWorld.go
源码 :
package mainimport "fmt" // import ("fmt")
func main() {
fmt.Println("Hello Worl
1 为何我对这个库感兴趣呢?
因为我想看看Kubernetes的源码,Kubernetes,Hugo啥的都是那这个解析的命令行参数
2 安装
go get github.com/spf13/pflag
3 我自己写的例子
1 packa
1、为什么要配置GOPATH
配置GOPATH的用意是为了方便项目的部署和构建,以及可以直接使用go get 命令下载第三方的包到自己的项目的src下和相关的执行文件bin目录,和中间文件pkg
src :项目的源代码
pkg :编译后的生成文件
bin :
go-redis的使用1.下载代码到GOPATH环境变量指定的目录比如我的是进入目录D:golangcodesrcgithub.comgo-redis , 执行git clone https://github.com/go-redis/redis.git
2.redis设置过期时间的命令是
晚上在阅读go lang的资料时突然想到一个问题,go是如何分配变量的内存结构的呢?好在网上的一篇文章做了透彻的分析见【go语言局部变量分配在栈还是堆】。
其结论是go语言局部变量的分配是由编译器决定的。go语言编译器会自动决定把一个变量放在栈还是放在堆,编译器会做逃逸分析(escap
filebeat是一个轻量的日志收集工具,全套使用go语言开发。
我目前遇到的问题是,在收集的时候需要对数据进行采样,采样比和采样形式要灵活,因为可能在多个项目会使用到这个日志收集功能。刚开始我仔细研究filebeat的配置,我感觉他自身应该带有采集需求,然而并没有。于是我想着去修改他的源码
packge main
import "fmt"
func main(){
fmt.println("hello")
}
大括号约定
方法名首字母区分方法类型,首字母大写为公开方法,首字母小写为私有方法.
码代码之前一定要安装go,哈哈哈哈,反正我只装goland然后写不了代码报错,卡在第一段代码哈哈哈哈哈哈
新建项目goproject
新建src文件夹
新建main文件夹
新建第一个go文件
开始写代码....
好了,我用一秒钟的时间写完
目录
接口是什么?
interface类型
空接口(interface{})
interface函数参数
interface变量存储的类型类型断言
嵌入interfa
以输出HelloWorld为目标
Go的发展史
Go语言诞生(2007年的谷歌)的背景是由于软件开发的新挑战:
多核硬件架构
超大规模分布式计算集群
Web模式导致的前所未有的开发规模和更新速度
Go的特点:
简单,关键字很少,只有25个
高效
生产力(复合)
云计算语言
区块链语言
安装和运行He
1.1 struct to json 准备
很简单,使用encoding包可以互相转换,没什么好说的,但是有几点注意:
1.结构体内需要序列化的字段首字母大写(遵循驼峰式命名),不需要序列化的字段小写无所谓了
Username string `json:
为什么要谈这个topic?
实践中,质量保障体系的建设,主要针对两个目标: 一是不断提高目标业务测试覆盖率,保障面向客户的产品质量;二就是尽可能的提高人效,增强迭代效率。而构建全链路质量卡点就是整个体系建设的核心手段。笔者用下图来描述这整个链路:
可以看到,虽然保障业务迭代的方向性正确排在最前面,但
目录
什么是逃逸分析
为什么要逃逸分析
逃逸分析是怎么完成的
逃逸分析实例
总结
写过C/C++的同学都知道,调用著名的malloc和new函数可以在堆上分配一块内存,这块内存的使
linux基础之bash特性
1、命令历史
命令历史包含的环境变量
$HISTSIZE:命令历史记录的条数
$HISTFILE:命令历史文件~/.bash_history
$HISTFILESIZE:命令历史文件记录历史命令
格式化写法:
fmt.Sprintf(格式化样式, 参数列表…)
参数说明:
格式化样式:字符串形式,格式化动词以%开头。
参数列表:多个参数以逗号分隔,个数必须与格式化样式中的动词个数对应,否则运行时会报错。
在 Go 语言中,格式化的命名延续C语言风格:
count := 1
fmt.Sprin
golang基础之函数
1、为什么需要函数?
有些相同的代码可能出现多次,如果不进行封装,那么多次写入到程序中,会造成程序冗余,并且可读性降低
2、什么是函数
为完成某些特定功能的程序指令集合称为函数
3、函数分类
内建函数
自定
1、当向切片新加入数据,原切片数据加上新数据长度不超过切片容量时,直接加入切片末尾,容量大小不变.
2、当加入新的数据后,数据长度超出原切片的容量大小2倍,则切片的容量会是数据长度(偶数)或数据长度(奇数)+1.
3、当加入新的数据后,数据长度未超出原切片的容量大小2倍,则切片的
目录
什么是逃逸分析
为什么要逃逸分析
逃逸分析是怎么完成的
逃逸分析实例
总结
参考资料
写过C/C++的同学都知道,调用著名的malloc和new函数可以在堆上
目录
结构体定义
创建结构体实例普通方式创建结构体实例
new()创建结构体实例
结构体实例初始化
结构体类型实例和指向它的指针内存布局
结构体的方法