您的位置:首页关键词: Golang
  • Golang 的defer执行规则说明
    defer介绍defer是golang的一个特色功能,被称为“延迟调用函数”。当外部函数返回后执行defer。类似于其他语言的 try… catch … finally… 中的finally,当然差别还是明显的。在使用defer之前我们应该多了解defer的特性,这样才能避免使用上的误区。1. 最简...
    日期:2023-10-26浏览:250
    标签: Golang
  • golang DNS服务器的简单实现操作
    简单的DNS服务器提供一个简单的可以查询域名和反向查询的DNS服务器。dig命令主要用来从 DNS 域名服务器查询主机地址信息。查找www.baidu.com的ip (A记录):命令:dig @127.0.0.1 www.baidu.com根据ip查找对应域名 (PTR记录):命令:dig @127...
    日期:2023-10-22浏览:96
    标签: Golang
  • 在golang中使用Sync.WaitGroup解决等待的问题
    面对goroutine我们都需要等待它完成交给它的事情,等待它计算完成或是执行完毕,所以不得不在程序需要等待的地方使用time.Sleep()来睡眠一段时间,等待其他goroytine执行完毕,下面的代码打印1到100的for循环可以在很快的时间内运行完毕,但是我们必须添加time.Sleep()来...
    日期:2023-10-28浏览:65
    标签: Golang
  • golang coroutine 的等待与死锁用法
    直接上代码:1. 第一种情况如果没有select{}, main 主线程不会等待coroutine运行,导致coroutine得不到机会运行。You are requesting eventual scheduling (using the two go statements)of two goro...
    日期:2023-10-22浏览:320
    标签: Golang
  • Golang 实现 Redis系列(六)如何实现 pipeline 模式的 redis 客户端
    本文的完整代码在github.com/hdt3213/godis/redis/client通常 TCP 客户端的通信模式都是阻塞式的: 客户端发送请求 -> 等待服务端响应 -> 发送下一个请求。因为需要等待网络传输数据,完成一次请求循环需要等待较多时间。我们能否不等待服务端响应直接发送...
    日期:2023-11-01浏览:7
    标签: Golang
  • golang 的string与[]byte转换方式
    相对于C语言,golang是类型安全的语言。但是安全的代价就是性能的妥协。下面我们看看Golang不想让我们看到的“秘密”——string的底层数据。通过reflect包,我们可以知道,在Golang底层,string和slice其实都是struct:type SliceHeader struct ...
    日期:2023-10-26浏览:342
    标签: Golang
  • Golang 空map和未初始化map的注意事项说明
    可以对未初始化的map进行取值,但取出来的东西是空:var m1 map[string]stringfmt.Println(m1['1'])不能对未初始化的map进行赋值,这样将会抛出一个异常:panic: assignment to entry in nil mapvar m1 map[strin...
    日期:2023-10-25浏览:7
    标签: Golang
  • golang 实现一个负载均衡案例(随机,轮训)
    今天用go实现一个简单的负载均衡的算法,虽然简单,还是要写一下。1.首先就是服务器的信息package balancetype Instance struct { host string port int}func NewInstance(host string, port int) *...
    日期:2023-10-23浏览:198
    标签: Golang
  • golang 打印error的堆栈信息操作
    众所周知,目前的golang error只关注Error()信息,而不关注它的堆栈路径,对错误的定位大多数通过log.SetFlags(log.Llongfile| log.LstdFlags)log.Println(e)一旦代码分层,为了定位错误,可能出现每一个层次的同一个error,都得log好...
    日期:2023-10-21浏览:374
    标签: Golang
  • Golang的func参数及返回值操作
    参数及返回值参数一指定数据类型为int参数二 (…interface{}) 可传任何多个不同类型的参数返回值:单个返回值直接指定数据类型可以不使用 (),多个返回值需使用()。各返回值之间使用逗号分隔func main() { demo.Params(10, 20, 'golang', true)}...
    日期:2023-10-20浏览:32
    标签: Golang