前言Go 是一门简单有趣的编程语言,与其他语言一样,在使用时不免会遇到很多坑,不过它们大多不是 Go 本身的设计缺陷。如果你刚从其他语言转到 Go,那这篇文章里的坑多半会踩到。如果花时间学习官方 doc、wiki、讨论邮件列表、 Rob Pike 的大量文章以及 Go 的源码,会发现这篇文章中的坑是很常见的,跳过这些坑,能减少大量调试代码的时间。高级篇:52-5852.使用指针作为方法的 rece
转载
2024-04-13 10:48:27
120阅读
GolangReflect小编是一个Java程序员,近来自学了一下golang这门语言。(秉持一个理念,语言无国界,万事皆可盘) 本文介绍主要介绍golang的映射关系部分。该部分为基础go的映射关系入门讲解。我看很多资料或教程上都将这一部分省略掉了,今天就专门在官网上学习了一下。小编也是刚入门,有所不足的地方还望大佬多多指教。一 简介计算中的反射是指程序检查自身结构的能力,特别是通过类型;它是元
转载
2024-07-15 06:17:21
57阅读
传统方式在刚开始学go的时候,没用过Context包,那么退出携程的方式一般有这么几种使用携 chan 发送消息通知,这种一般只适合单个goroutinefunc exit01() {
done := make(chan bool)
go func() {
for {
select {
case <-done:
方法Go 语言中同时有函数和方法。方法就是一个包含了接受者(receiver)的函数,receiver可以是内置类型或者结构体类型的一个值或者是一个指针。所有给定类型的方法属于该类型的方法集。如下面的这个例子,定义了一个新类型Integer,它和int一样,只是为它内置的int类型增加了个新方法Less()type Integer int
func (a Integer) Less(b Int
转载
2024-02-27 09:15:20
81阅读
欢迎来到第二十四节。什么是select?select模式是用来从多输入/输出通道中进行选择的一种操作。select模式下会一直阻塞直到至少一个可读/写操作就绪,如果多个读写操作就绪,那么久随机从中选择一个。语法有点类似switch除了每个case选择都是一个通道操作。为了更好理解上代码:package main
import (
"fmt"
"time"
)
func
转载
2024-04-02 10:19:15
9阅读
前言golang读取文件的方式主要有4种:使用File自带的Read方法使用bufio库的Read方法使用io/ioutil库的ReadAll()使用io/ioutil库的ReadFile()关于前3种方式的速度比较,我最早是在 GoLang几种读文件方式的比较 看过,但在该blog的评论区有人(study_c)提出了质疑,并提供了测试代码。根据该代码的测试,结果应该是bufio > iou
文章目录1. Resty简介2. GET方法3. POST方法4. PUT方法5. 高级应用5.1 代理5.2 重试6. 中间件1. Resty简介微服务开发中服务间调用的主流方式有两种HTTP
原创
2022-05-30 20:10:59
706阅读
简单的 HTTP 和 REST 客户端,受到 Ruby rest-client 的启发。2、发送POST请求。
原创
2024-05-27 14:32:20
316阅读
TIME_WAIT和CLOSE_WAIT过多netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'我们用netstat可以查看到目前的tcp连接中,各个状态的数量,最常见的问题是,TIME_WAIT和CLOSE_WAIT状态的数量过多了,严重占用端口资源。众所周知,TCP连接是三次握手,四次挥手的状态。当客户端或服务
转载
2024-05-11 23:53:49
225阅读
github: https://github.com/go-resty/resty go-resty 特性# go-resty 有很多特性: 发起 G
原创
2023-07-05 13:29:05
1223阅读
resty-redis-cluster下载地址
https://github.com/steve0511/resty-redis-cluster
转载
2023-07-11 20:18:17
35阅读
rpc即远程过程调用。在server端提供计算、文件存储等服务。在客户端去调用server端的这些服务,使客户端的业务变得简洁和高效。s
原创
2022-12-21 10:34:38
56阅读
抄录一些例子 package main import ( "bytes" "fmt" "regexp" ) func main() { //是否匹配字符串 // .匹配任意一个字符 ,*匹配零个或多个 ,优先匹配更多(贪婪) match, _ := regexp.MatchString("H(.*) ...
转载
2021-09-22 16:56:00
390阅读
2评论
[code="lua"]
local t = {}
local function produce_thread()
for i=1,5 do
t[i] = i
ngx.say("produce:",i)
ngx.sleep(0.01)
end
end
local function consume_thread()
for i=1,5 ...
原创
2023-04-11 00:28:01
30阅读
[code="lua"]
local m, err = ngx.re.match("hello, 1234", "[0-9]+")
if m then
原创
2023-04-11 00:21:19
71阅读
fragment 懒加载在我们的应用中使用 tablayout + ViewPager + fragment 来呈现多标签页面,那么就会出现一个问题, viewpager 有预加载的功能,一般会加载 4 个所有的fragment ,也就是说,如果在 fragment 初始化的时候请求网络,那么就会同时有 4 个页面都会请求,但是用户只想查看 1 个页面,这就会造成流量的浪费,当然啦,现
函数函数可以没有参数或接受多个参数。在本例中,add 接受两个 int 类型的参数。注意类型在变量名 之后。(参考 这篇关于 Go 语法声明的文章了解这种类型声明形式出现的原因。)package mainimport "fmt"func add(x int, y int) int { return x + y}func main() { fmt.Println(add(42, 13))}...
原创
2021-07-02 14:32:24
98阅读
然后在一个goroutine中将1到5的数字发送到channel中。在主goroutine中,我们使用无限循环从channel中读取数据,直到读取到空数据
原创
2023-11-14 13:39:44
66阅读
简介gprc的详细描述不多介绍,可以参考:http://doc.oschina.net/grpc?t=58008这里仅与http作横向对比,集中体现在如下差异:传输协
原创
2022-11-22 23:06:59
507阅读
golang使用protoc,grpc生成代码环境配置、官方示例
翻译
2020-09-27 16:15:48
1498阅读