随笔分类 - go语言
发表于 2023-05-05 02:07阅读次数:37评论次数:0
摘要:package main import "fmt" type Sex int // 枚举 const ( SexMan Sex = iota SexWoman SexUnkonw ) func (s Sex) String() string{ switch s { case 0: return "男
阅读全文 »
发表于 2023-04-18 02:11阅读次数:973评论次数:0
摘要:goland版本:2020 go版本:1.20.3最新版 在goland中配置GOROOT时找不到sdk 解决版本: > cd /usr/local/go # 我本地go的安装目录 > cd /src/runtime/internal/sys > vi zversion.go package sys
阅读全文 »
发表于 2022-12-26 14:49阅读次数:311评论次数:0
摘要:方法的接收者 package main import ( "fmt" ) type Person struct { Name string Age int } func (p Person) walking(){ fmt.Println("我是值类型方法") fmt.Printf("%s, 今年%d
阅读全文 »
发表于 2022-08-12 01:15阅读次数:186评论次数:0
摘要:消息队列中间件 消息队列中间件,也可以称为消息队列或者消息中间件。它一般有两种传递模式:点对点模式和发布/订阅模式。点对点模式是基于队列的,消息生产者发送消息到队列,消息消费者从队列中接收消息,队列的存在使得消息的异步传输成为可能。 发布订阅模式定义了如何向一个内容节点发布和订阅消息,这个内容节点称
阅读全文 »
发表于 2022-08-02 13:40阅读次数:383评论次数:0
摘要:grpc让我们可以像本地调用一样实现远程调用,对于每一次的RPC调用中,都可能会有一些有用的数据,而这些数据就可以通过 metadata来传递。metadata是以key-value的形式存储数据的,其中key是string类型,而value是[]string,即一个字符串 数组类型。metadat
阅读全文 »
发表于 2022-05-20 10:49阅读次数:225评论次数:0
摘要:概述 go语言中的MPG线程模型对两级线程模型进行了一定程度的改进,使它能够更加灵活的进行线程之间的调度。 它由3个主要模块构成,如下图: MPG的3个主要模块以及功能,我们通过下表所示。 | 模块 | 功能说明 | | | | | Machine | 一个Machine对应一个内核线程,相当于内核
阅读全文 »
发表于 2022-04-20 22:47阅读次数:344评论次数:0
摘要:linux下go版本安装(1.18.1版本) >>> wget https://go.dev/dl/go1.18.1.linux-amd64.tar.gz >>> tar xzvf go1.18.1.linux-amd64.tar.gz -C /usr/local >>> mkdir /data/g
阅读全文 »
发表于 2022-04-14 15:19阅读次数:101评论次数:0
摘要:user.proto syntax = "proto3"; package demo; option go_package = "./pb"; //指定go_out对应的目录 message UserInfo{ int32 UserType = 1; string UserName = 2; str
阅读全文 »
发表于 2022-04-14 12:35阅读次数:322评论次数:0
摘要:context包 context包介绍 在go语言中,每个独立调用一般都会被单独的协程处理。但在处理一个请求时,往往可能需要在多个协程之间进行信息传递,甚至包括一层层地递进顺序传递,而且这种信息往往具有一定的场景状态。如一个请求可能衍生出各个协程之间需要满足一定的约束关系,如登录状态,前一个协程
阅读全文 »
发表于 2022-04-14 01:16阅读次数:151评论次数:0
摘要:server.go package main import ( "bufio" "fmt" "io" "net" "time" ) func tcpPipe(conn *net.TCPConn) { ipStr := conn.RemoteAddr().String() defer func() {
阅读全文 »
发表于 2022-04-13 20:18阅读次数:62评论次数:0
摘要:反射 package main import ( "fmt" "reflect" ) type Student struct { name string } type MyInt int func main() { /*Type的主要方法 Kind()返回一个常量,表示具体类型的底层类型 Elem(
阅读全文 »
发表于 2022-04-13 14:15阅读次数:66评论次数:0
摘要:在range语句中生成的数据的值是真实集合元素的副本,它们不是原有元素的引用。这意味着更新这些值将不会 修改原来的数据,同时也意味着使用这些值的地址将不会得到原有数据的指针。 package main import "fmt" func main(){ data := []int{1,2,3} fo
阅读全文 »
发表于 2022-04-03 21:28阅读次数:140评论次数:0
摘要:From golang:1.16-alpine3.13 AS builder WORKDIR /app COPY . . RUN go build -o main main.go From alpine:3.13 WORKDIR /app COPY --from=builder /app/main
阅读全文 »
发表于 2022-03-22 13:31阅读次数:297评论次数:0
摘要:package main import ( "fmt" "github.com/gin-gonic/gin" ) func func1(c *gin.Context){ fmt.Println("func1") } func func2(c *gin.Context){ fmt.Println("f
阅读全文 »