os包提供了操作系统的系列函数,这些接口不依赖平台。设计为Unix风格的,错误处理是go风格的;调用失败会返回错误值而非错误码。通常错误值里包含更多信息。 os包的接口在所有操作系统中都是一致的。非公用的属性可以从操作系统特定的syscall包获取。 一、操作系统基本命令 1. 相关方法 func
package set package set import ( "bytes" "fmt" "sync" ) type Set struct { m map[interface{}]bool sync.RWMutex } func New() *Set { return &Set{m: make(
配置文件结构体 config.go package config type System struct { Mode string `mapstructure:"mode" json:"mode" ini:"mode"` } type Log struct { Prefix string `maps
Go语言中的并发编程 并发与并行 并发:同一时间段内执行多个任务(宏观上并行,微观上并发)。 并行:同一时刻执行多个任务(宏观和微观都是并行)。 Go语言的并发通过goroutine实现。goroutine类似于线程,属于用户态的线程,我们可以根据需要创建成千上万个goroutine并发工作。gor
在计算机性能调试领域里,profiling 是指对应用程序的画像,画像就是应用程序使用 CPU 和内存的情况。 Go语言是一个对性能特别看重的语言,因此语言中自带了 profiling 的库,这篇文章就要讲解怎么在 golang 中做 profiling。 Go性能优化 Go语言项目中的性能优化主要
一、Path包 import "path" path实现了对斜杠分隔的路径进行操作的函数。 func IsAbs(path string) bool // 判断是否是一个绝对路径 func Split(path string) (dir, file string) // 将路径分割为路径和文件名 f
Go语言爬虫框架之Colly和Goquery Python爬虫框架比较多有requests、urllib, pyquery,scrapy等,解析库有BeautifulSoup、pyquery、Scrapy和lxml等等,基于Go的爬虫框架是比较强健的,尤其Colly和Goquery是比较强大的工具,
第 1 天
day01-01 为什么要学习 Go
day01-02 课上所用物料介绍
day01-03 安装 Go 开发包
day01-04 配置 GOPATH
day01-05 Go 项目目录结构介绍
day01-06 安装 VSCode 编辑器
day01-07 编写第一个 Go 语言程序
day01-08 变量声明
day01-09 变量赋值
day01-10 常量和 iota
day01-
依赖管理 为什么需要依赖管理? 最早的时候,Go所依赖的所有的第三方库都放在GOPATH这个目录下面。这就导致了同一个库只能保存一个版本的代码。如果不同的项目依赖同一个第三方的库的不同版本,应该怎么解决? 一、godep Go语言从v1.5开始开始引入vendor模式,如果项目目录下有vendor目
发送邮件是实际业务中经常会用到的一个功能,而在Go语言中实现发送邮件的库也有很多,这篇文章将介绍go语言中如何发邮件。 1. 登录QQ邮箱,选择账户,开启POP3/SMTP服务和IMAP/SMTP服务,并生成授权码 2. 使用go语言的smtp包发送邮件 go_email/email.go func
1. 判断匹配和转义 // 判断在 b(s、r)中能否找到 pattern 所匹配的字符串 func Match(pattern string, b []byte) (matched bool, err error) func MatchString(pattern string, s string
本文主要给大家介绍Go语言中函数new与make的使用和区别,关于Go语言中new和make是内建的两个函数,主要用来创建分配类型内存。在我们定义生成变量的时候,可能会觉得有点迷惑,其实他们的规则很简单,下面我们就通过一些示例说明他们的区别和使用,话不多说了,来一起看看详细的介绍吧。
Go语言各种数据类型格式转换 package main import ( "encoding/json" "fmt" "reflect" "strconv" ) type User struct { Id int `json:"id"` Name string `json:"name"` } fun
在许多Go语言项目中,我们需要一个好的日志记录器能够提供下面这些功能: 能够将事件记录到文件中,而不是应用程序控制台。 日志切割-能够根据文件大小、时间或间隔等来切割日志文件。 支持不同的日志级别。例如INFO,DEBUG,ERROR等。 能够打印基本信息,如调用文件/函数名和行号,日志时间等。
Socket编程 一、socket编程概述 什么是socket编程? socket编程是计算机PC机器上2个程序通过一个双向的通信连接实现数据的交互,这个连接的一端就是一个socket。socket的翻译意思上还有个插座的概念,其实,也可以很形象的比喻为插座插上去了就有通电了(网络通了)。socke
一、数组和切片 数组 1. 数组:是同一种数据类型的固定长度的序列。 2. 数组定义:var a [len]int,比如:var a[5]int,一旦定义,长度不能变 3. 长度是数组类型的一部分,因此,var a[5] int和var a[10]int是不同的类型 4. 数组可以通过下标进行访问,
接口 1. 定义: Interface类型可以定义一组方法,但是这些不需要实现。并且interface不能包含任何变量。 type example interface{ Method1(参数列表) 返回值列表 Method2(参数列表) 返回值列表 } 2.interface类型默认是一个指针 ty
http编程 一、Http协议 1. 什么是协议? 协议,是指通信的双方,在通信流程或内容格式上,共同遵守的标准。 2. 什么是http协议? http协议,是互联网中最常见的网络通信标准。 3. http协议的特点 ①通信流程:断开式(无状态) 断开式:http协议每次响应完成后,会断开与客户端的
Go语言的前世今生 一、 为什么需要一个新的语言 最近十年来,C/C++在计算领域没有很好得到发展,并没有新的系统编程语言出现。对开发程度和系统效率在很多情况下不能兼得。要么执行效率高,但低效的开发和编译,如C++;要么执行低效,但拥有有效的编译,如.NET、Java;所以需要一种拥有较高效的执行速
结构体(Struct) Go中struct的特点 1. 用来自定义复杂数据结构 2. struct里面可以包含多个字段(属性) 3. struct类型可以定义方法,注意和函数的区分 4. struct类型是值类型 5. struct类型可以嵌套 6. Go语言没有class类型,只有struct类型
一、文件名 & 关键字 & 标识符 1.所有go源码以.go结尾 2.标识符以字母或下划线开头,大小写敏感 3._是特殊标识符,用来忽略结果 4.保留关键字 除了以上介绍的这些关键字,Go 语言还有 36 个预定义标识符: append bool byte cap close complex com
终端读写 1. 终端读写 操作终端相关文件句柄常量 os.Stdin:标准输入 os.Stdout:标准输出 os.Stderr:标准错误输出 2. 终端读写示例 package main import ( "fmt" ) var ( firstName, lastName, s string i
一、Goroute 1. 进程和线程 A. 进程是程序在操作系统中的一次执行过程,系统进行资源分配合调度的一个独立单位 B. 线程是进程的一个执行实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。 C. 一个进程可以创建和撤销多个线程:同一个进程中的多个线程之间可以并发执行。
go中文网每日资讯–2021-01-19
一、#公众号:Go语言中文网
项目实战:使用 Go 构建 GraphQL API
Golang程序性能分析(一)pprof和go-torch
分布式事务之底层原理揭秘
二、#公众号:亚军进化史
Go技术日报(2021-01-18)
三、#公众号:代码与远方
10张图让你彻底理解回调函数
四、#公众号:polarisxu
图书《Go 语言标准库
每日一谚: Implement common interfaces (fmt.Stringer, io.Reader and so on) if they match your code.
go中文网每日资讯–2021-02-16
一、#公众号:Go语言中文网
1.Go 语言标准库中 atomic.Value 的前世今生
2.解密 defer 原理,究竟背着程序猿做了多少事情?
3.搭一个K
每日一谚: Multiple function return values inform the design for handling errors.
go中文网每日资讯--2021-04-04
一、Go语言中文网
Go语言爱好者周刊:第 89 期 — 泛型又有变动
不知道如何组织项目结构,这个项目也许可以给你启发
面试官:你能用Go写段代码判断当前系统的存储方式吗?
二、亚军
每日一谚: Go makes error handling as important as any other code.
go中文网每日资讯--2021-04-07
一、Go语言中文网
使用Go实现可用select监听的队列
"go build -X" 的妙用
二、亚军进化史
Go技术日报(2021-04-06)——高性能 Go 代码工坊
三、MoeLove
K8S 生态周报|
每日一谚: Return error as error, not as some value.
go中文网每日资讯--2021-04-09
一、Go语言中文网
Go 惯用模式:函数选项模式
最清晰易懂的 Go WaitGroup 剖析
二、亚军进化史
Go技术日报(2021-04-08)——RLock 过程被调出的悲剧
三、学而思网校技术团队
redis基本原理及缓存应用实践
四
每日一谚: 在Go语言的错误处理哲学下,创建一个没有任何返回值的函数都会让我有一种强烈的bad smell的感觉
go中文网每日资讯--2021-04-12
一、Go语言中文网
极速精简 Go 版 Logstash
Go 数据结构和算法篇(一):链表
二、亚军进化史
Go技术日报(2021-04-11)——rpcx支持websocket协议了!
三、CloudNativeCommu
每日一谚: Writing documentation improves the code I write.
go中文网每日资讯--2021-04-13
一、Go语言中文网
把 Go 当脚本语言用
深度剖析 Go 的 nil
二、亚军进化史
Go技术日报(2021-04-12)—— Channel 底层实现
三、真没什么逻辑
CPU 和 GPU - 异构计算的演进与发展
四、po