![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Go语言学习
Go语言学习
一曲长歌,一剑天涯
开发、算法成长之路...
展开
-
[GO] nil问题
题目:明明是nil,却什么都没打印出来原创 2021-08-15 16:20:56 · 104 阅读 · 0 评论 -
[GO]函数执行超时控制
问题:解决:原创 2021-08-15 16:12:50 · 176 阅读 · 0 评论 -
[GO] 限制协程数量
原创 2021-08-15 16:06:18 · 509 阅读 · 0 评论 -
[GO] gin源码解读
参考资料:Gin 框架的路由结构浅析nodenode 结构体定义如下type node struct { path string // 当前节点相对路径(与祖先节点的 path 拼接可得到完整路径) indices string // 所以孩子节点的path[0]组成的字符串 children []*node // 孩子节点 handlers HandlersChain // 当前节点的原创 2021-08-08 18:20:56 · 239 阅读 · 0 评论 -
[GO] 提升性能技巧
参考资料性能提示Go 语言是一个高性能的语言,但并不是说这样我们就不用关心性能了,我们还是需要关心的。下面是一个在编程方面和性能相关的提示。如果需要把数字转字符串,使用 strconv.Itoa() 会比 fmt.Sprintf() 要快一倍左右尽可能地避免把String转成[]Byte 。这个转换会导致性能下降。如果在for-loop里对某个slice 使用 append()请先把 slice的容量很扩充到位,这样可以避免内存重新分享以及系统自动按2的N次方幂进行扩展但又用不到,从而浪费内存。原创 2021-08-06 15:09:32 · 174 阅读 · 0 评论 -
[GO] 切片
参考资料:Go 语言切片(Slice)GO编程模式:切片,接口,时间和性能Go 切片绕坑指南Go 语言切片是对数组的抽象。Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go 中提供了一种灵活,功能强悍的内置类型切片(“动态数组”),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增大。空(nil)切片一个切片在未初始化之前默认为 nil,长度为 0,实例如下:package mainimport "fmt"func main() { var原创 2021-08-06 14:54:34 · 107 阅读 · 0 评论 -
[GO] Functional Options
参考资料:GO 编程模式:FUNCTIONAL OPTIONSpackage optionimport ( "crypto/tls" "time")type Server struct { Addr string Port int Protocol string Timeout time.Duration MaxConns int TLS *tls.Config}func NewServer(addr string, port int, opt原创 2021-08-06 10:32:38 · 115 阅读 · 0 评论 -
Go学习路径
参考资料Go学习路线1. 先决条件1.1 Go基础GO命令行操作变量、常量、类型、函数、包等数组、切片指针、结构、方法接口协程、信道、缓冲区、select、互斥锁Mutexdefer机制、错误、panic异常、恢复recover1.2 Go模组学习Go依赖管理工具语义版本控制(Samantic Versioning)版本,脚本,存储库及其它特性1.3 SQL基础原理基础SQL语法2. 基本开发技能2.1 代码管理工具GIT2.2 网络协议HTTP/原创 2021-07-17 15:48:19 · 200 阅读 · 1 评论 -
[GO] xorm
datas := make([]*models.HorizontalMultiple, 0) errone := session.Table("horizontal").Select("horizontal.auto_code_id,horizontal.id,horizontal.monitor_point_name,horizontal.collect_time,horizontal.tangential_cumulative,horizontal.radial_cumulative,water_le原创 2021-06-30 15:02:25 · 73 阅读 · 0 评论 -
[GO] gorm
1.sql对查询为null的值赋默认值sqlserver:select isnull(字段,0) from 表名 --这样就是把空值赋值为0 MySQL:select ifnull(字段,0) from 表名oracle:select nvl(字段,0) from 表名 gorm操作dsn := "sqlserver://sa:123456@0.0.0.0:1433?database=wzz"gSession, err := gorm.Open(sqlserver.Open(dsn原创 2021-06-30 13:37:55 · 225 阅读 · 0 评论 -
Go语言后端开发技术栈
1.操作系统熟悉Linux操作系统2.数据库熟悉SQL,并了解常用的SQL优化技巧、熟悉MySQL,并掌握常用性能优化技巧熟悉RocksDB、Memcached或Redis、MongoDB等NoSQL技术3.网络掌握TCP/IP、HTTP(S) 等网络通信技术,对tcp http https有一定理解熟悉Socket 网络编程4.Go语言精通Golang熟悉 Golang 并发编程熟悉Golang生产环境开发工作经验5.数据结构和算法熟悉算法、数据结构和常用的设计模式6原创 2021-03-12 09:43:51 · 7337 阅读 · 4 评论 -
goswagger
1.错误描述:wsl2下执行,出现Undocumented:TypeError: Failed to fetch错误解决方法:windows powershell下执行:wsl.exe --set-version Ubuntu-20.04 1查看ip地址原创 2020-11-18 13:33:16 · 359 阅读 · 0 评论 -
复制与压缩文件(夹)
将文件夹压缩,复制到指定位置// An highlighted blockpackage helperimport ( "archive/zip" "io" "io/ioutil" "os" "path")func CopyAllFile(dst, src string) (err error) { ok, err := IsDir(src) if err != nil { return err } if ok {原创 2020-10-27 17:27:24 · 150 阅读 · 0 评论 -
go&goland安装
golang链接link.goland链接: link.转载 2020-12-17 14:38:01 · 130 阅读 · 0 评论 -
CGO学习
CGO练习package main/*#include <stdio.h>#include <errno.h>#cgo windows CFLAGS: -DCGO_OS_WINDOWS=1#cgo darwin CFLAGS: -DCGO_OS_DARWIN=1#cgo linux CFLAGS: -DCGO_OS_LINUX=1#if defined(CGO_OS_WINDOWS) const char* os = "windows";#elif def原创 2020-09-28 10:51:24 · 195 阅读 · 0 评论