Golang面试题解析
Go 笔试面试
Go面试题答案与解析
Golang经典面试题上
Golang经典面试题下
golang语言面试题总结(一)
Golang面试题解析
Go语言构建微服务一站式解决方案
Go微服务 - 第一部分 - 介绍及理论基础
Go 微服务实战汇总
Go实践微服务 – go-micro编写微服务
哔哩哔哩-哔哩哔哩的Go微服务实战
04【千锋Go语言】Go语言微服务实践
go-micro电商项目实战简介
mux学习
Golang 第三方库学习 · mux
golang进阶(四)——路由mux的最佳实践
Gorilla学习笔记
golang日志框架logrus
logrus 安装 使用
logrus日志使用详解
golang日志框架之logrus
6.4. validator 请求校验
Golang validator 详解
golang cron 定时任务使用
Gin实践 连载十一 Cron定时任务
github.com/robfig/cron【Golang 常用包推荐】
golang版的crontab
golang crontab的计划任务及定时任务使用
golang cron定时任务
Go cron定时任务的用法
Go语言命令行库urfave/cli简介
Golang的一个CLI框架介绍,个人学习备忘
cli - 构建强大命令行程序的工具箱 (1)
golang struct里面的字段,或者slice排序
golang.org/x/crypto/scrypt应该如何使用?
在Golang中如何用scrypt对敏感信息加密
go-sql-driver: invalid connection 和 [mysql] 2019/xx/xx 12:xx:55 packets.go:36: unexpected EOF
使用go-sql-driver.mysql包报错unexpected EOF
MYSQL 设置 FOR UPDATE 超时时间
关于Golang中database/sql包的学习笔记
Go database/sql文档
Go 语言 switch 语句
Go语言之读取yaml配置文件,转换成struct结构,json形式输出
Go语言 time时间格式转换
golang时间戳和时间的转化
Go时间戳和日期字符串的相互转换
Go语言实战笔记(二十四)| Go 反射
值传递: b为a的复制品
引用传递: a,c指向同一个内存地址
&: 取指针指向的地址
*: 取指针指向的值
golang 整数常量INT_MAX INT_MIN最大值最小值
[Golang] string类型和其他类型的值的互转
golang 字符串比较是否相等
golang substring
判断字符串是否为空
GO-字符串常用操作
go语言string、int、int64互相转换
golang类型int64强制转换成int
// 生成格式化字符串并写入W, 返回写入的字节数
// Fprintf根据format参数生成格式化的字符串并写入w。返回写入的字节数和遇到的任何错误。
func Fprintf(w io.Writer, format string, a ...interface{}) (n int, err error)
// Fprintln采用默认格式将其参数格式化并写入w。总是会在相邻参数的输出之间添加空格并在输出结束后添加换行符。
// 返回写入的字节数和遇到的任何错误。
func Fprintln(w io.Writer, a ...interface{}) (n int, err error)
// 生成格式化字符串并返回
// Sprintf根据format参数生成格式化的字符串并返回该字符串。
func Sprintf(format string, a ...interface{}) string
// 获取指定路径的最后一个字符串并返回
// Base函数返回路径的最后一个元素。在提取元素前会求掉末尾的路径分隔符。如果路径是"",会返回".";如果路径是只有一个斜杆构成,会返回单个路径分隔符。
func Base(path string) string
// Open打开一个文件用于读取。
// 如果操作成功,返回的文件对象的方法可用于读取数据;对应的文件描述符具有O_RDONLY模式。
// 如果出错,错误底层类型是*PathError。
func Open(name string) (file *File, err error)
// OpenFile是一个更一般性的文件打开函数,大多数调用者都应用Open或Create代替本函数。
// 它会使用指定的选项(如O_RDONLY等)、指定的模式(如0666等)打开指定名称的文件。
// 如果操作成功,返回的文件对象可用于I/O。如果出错,错误底层类型是*PathError。
func OpenFile(name string, flag int, perm FileMode) (file *File, err error)
go # 查看go支持的所有命令
go get # 通过go下载和安装相关资源
-v # 显示下载和安装过程的详细信息
go get -v github.com/beego/bee # 通过go下载和安装bee工具
go fmt # 格式化当前包中的go源文件
go list # 列出当前安装的全部package
go get
《Go Web编程》1.3 Go命令
基于GO语言大型企业级电商秒杀系统实战教程
用GO生成和识别二维码
Golang使用pkg-config自动获取头文件和链接库的方法
panic: reflect: reflect.Value.SetUint using value obtained using unexported field(go语言)
//ExecuteContext 用于将对引擎的调用过程返回给调用者
type ExecuteContext struct {
Action string `log:"action"` // 所执行操作的名称
IDName string `log:"id_name"` // 所操作的资源的ID描述
Method string `log:"method"` // HTTP Request Method
URL string `log:"url"` // HTTP Request URL
RequestBody []byte `log:"req"` // HTTP Request Body
StatusCode int // HTTP Response Status Code
ResponseBody []byte `log:"resp"` // HTTP Response Body
ResponseObj interface{}
}
golang
Golang资料集
系统学习GO,推荐几本靠谱的书?
《Go语言编程》【3.6 完整示例】代码错误和文件目录结构
《Go 程序设计语言》示例与习题
Go程序设计语言课后习题答案
Mutex--互斥锁, 只允许当前goroutine读写, 不允许其他goroutine读写
RWMutex--读写锁, 读锁时, 允许多个goroutine同时读; 写锁时, 只允许当前goroutine读写, 此时相当于互斥锁
无论是Mutex还是RWMutex, 与Lock()对应的都是Unlock()
RWMutex.RLock()--读写锁中的读锁, 读锁支持多个goroutine同时读
RWMutex.Lock()--读写锁中的写锁, 只允许当前goroutine读写, 不允许其他goroutine读写
牛客网: 关于同步锁,下面说法正确的是()
无缓冲的channel是同步的, 在接收方没有接收的情况下会阻塞
有缓冲的channel是非同步的, 在接收方没有接收的情况下不会阻塞
牛客网: 关于无缓冲和有冲突的channel,下面说法正确的是()[请着重理解该题目的解答]
select机制用于处理异步IO问题
select机制与switch语句类似, 运行时系统会自上而下的判断每个case中的IO接收或发送操作是否可以立即执行
select机制的最大一条限制是每个case块中的语句必须是面向channel的IO操作
牛客网: 关于select机制,下面说法正确的是()
类型转换
Type(expression)
类型断言
expression.(Type): 类型断言中expression必须是接口(interface{})类型
关于类型转化,下面语法正确的是()
golang中分为值类型和引用类型
值类型--int系列, float系列, bool, string, 数组和结构体--变量直接存储值,内存通常在栈中分配
引用类型--指针、slice、channel、interface、map、函数等--变量存储的是地址,该地址对应空间里存储真正的值,内存通常在堆中分配
牛客网: 数组是一个值类型,这一说法是否正确。
切片定义的两种方式:
直接定义:
s := []int{1, 2, 3, 4, 5} // 可以声明一个未指定大小的数组来定义切片,var identifier []type,切片不需要说明长度
make函数定义:
var slice1 []type = make([]type ,Len) // 使用make函数定义切片时,capacity不是必须的
var slice1 []type = make([]T ,length, capacity) // 使用make函数定义切片,同时指定length和capacity
Go语言中字符串是不可变的, 所以不能对字符串中某个字符单独赋值
牛客网: 下面的程序的运行结果是xello,这一说法是否正确。
全局变量要定义在函数之外, 而在函数之外定义的变量必须用var定义
定义一个包内全局字符串变量,下面语法正确的是
除指针外, 可以给任何自定义类型添加相应的方法
牛客网: 可以给任意类型添加相应的方法。这一说法是否正确。
func add(args ...int) int {}
...int--定义int类型的变长参数, 可传入整数序列, 整数slice; 传入slice时需要添加...表示传入为slice
下面对add函数调用正确的是
Go中++, --:
后置操作符, 必须跟在操作数后面
没有返回值, 不能用于表达式
关于变量的自增和自减操作,下面语句正确的是
cap()函数的作用:
array--返回数组元素的个数
slice--返回slice的容量
channel--返回channel的buffer容量
cap()函数不支持map, map使用len()表示大小
牛客网: 关于cap函数的适用类型,下面说法正确的是()