ICode9

精准搜索请尝试: 精确搜索
  • protobuf使用2022-04-25 22:01:24

    简介 protobuf是google开源的数据传输格式,作用类似于json/xml github地址https://github.com/protocolbuffers/protobuf 效率 由于protobuf采用二进制编码,不同于json/xml,其编码后的格式不便于人为观察,用于对传输效率/网络包等有特殊要求的服务,目前截止发文,已经支持了C++/jav

  • golang 协程 交替输出2022-04-24 11:00:40

    一般面试喜欢考试这个 通过无缓冲 chan 类似一个锁 谁拿到谁操作 序列化执行 将 核心数限定为1 主动让出调度权 chan ch := make(chan int) go func() { for i := 0; i < 10; i++ { ch <- 1 if i%2 == 1 { fmt.Println("A:", i) } } }() go func() { f

  • 【Golang】Demo2022-04-23 23:00:55

    并发控制 package main // demo 参考地址https://studygolang.com/articles/25950 import ( "github.com/siddontang/go-log/log" "math/rand" "sync" "time" ) func task() int { //取[n,m]的数 语法入下: rand.Seed(time.Now().UnixNano()

  • Golang的Test的用法2022-04-23 08:00:06

    正常来说,写了go代码跑起来,是将整个工程跑起来,比如一个goframe项目那么直接将g.server跑起来,也就是从入口文件 然后通过postman访问路由验证 但是很多时候有一些简单的静态方法像java可以在spring的项目之中任意文件起一个main函数调用验证static的一些方法 那么go的话,难道测试单一

  • golang 操作excel修改图片名称2022-04-22 16:32:24

    安装插件 go get github.com/xuri/excelize/v2 示例代码 package main import ( "fmt" "os" "path" "github.com/xuri/excelize/v2" ) func checkErr(err error, isReturn bool) { if err != nil { fmt.Println(err.Error()) if

  • 彻底解决Golang获取当前项目绝对路径问题2022-04-22 10:33:12

    导读 由于Golang是编译型语言(非脚本型语言),如果你想在Golang程序中获取当前执行目录将是一件非常蛋疼的事情。以前大家最折中的解决方案就是通过启动传参或是环境变量将路径手动传递到程序,而今天我在看日志库的时候发现了一种新的解决方案。 Go程序两种不同的执行方式 用Go编写的程

  • Golang转发请求2022-04-22 01:32:19

    Get参数自己拼接 package main import ( "log" "net/http" "net/http/httputil" "net/url" "github.com/gogf/gf/v2/frame/g" "github.com/gogf/gf/v2/net/ghttp" ) func main() { s

  • Golang 垃圾回收2022-04-22 00:32:20

    Go 垃圾回收使用的是标记-回收算法,分为四个阶段:标记准备阶段,标记阶段,标记终止阶段,清理阶段。 一、垃圾回收流程 1)标记准备阶段 进行的操作: 判断当前协程是否可以抢占,不可以抢占不触发GC; 启动后台标记协程; 暂停用户协程(STW - stop the word); 开启写屏障; 将根对象入队; 标记协程的

  • golang sync.once done 热路径2022-04-21 17:01:28

    sync.once 为什么会将done放在结构体第一个字段,就能够提升性能了? 我们先来看看sync.once的结构体: // Once is an object that will perform exactly one action. // // A Once must not be copied after first use. type Once struct { // done indicates whether the action h

  • 关于golang interface中T和*T的一个小测试和思考2022-04-21 09:33:53

    首先 贴一下参考的博客资料。 https://www.cnblogs.com/shijingxiang/articles/12201984.html 背景: golang中使用interface实现类似于C++或者JAVA 的多态,其中比较复杂的是接口中函数调用者参数可能为T或者*T。 按照官方文档说明,interface中 T 类型只能处理接收者参数为 T, T类型可

  • Golang 入门 : Go语言的设计哲学2022-04-21 02:31:59

    前言 设计哲学之于编程语言,就好比一个人的价值观之于这个人的行为。 因为如果你不认同一个人的价值观,那你其实很难与之持续交往下去,即所谓道不同不相为谋。类似的,如果你不认同一门编程语言的设计哲学,那么大概率你在后续的语言学习中,就会遇到上面提到的这些问题,而且可能会让你失去

  • golang Mqtt服务端2022-04-21 01:33:57

    package main import ( "context" "fmt" "net" _ "net/http/pprof" "os" "os/signal" "syscall" "time" "go.uber.org/zap" "g

  • golang bufio解析2022-04-21 01:31:06

    golang bufio 当进行频繁地对少量数据读写时会占用IO,造成性能问题。golang的bufio库使用缓存来一次性进行大块数据的读写,以此降低IO系统调用,提升性能。 在Transport中可以设置一个名为WriteBufferSize的参数,该参数指定了底层(Transport.dialConn)写buffer的大小。 tr := &http.Tr

  • 十分钟学会Golang开发gRPC服务2022-04-20 08:03:38

    gRPC是Google发起的一个开源RPC框架,使用HTTP/2传输协议,使用Protocol Buffers编码协议,相比RESTful框架的程序性能提高不少,而且当前流行的编程语言基本都已经支持。 Golang开发gRPC应用程序的套路也已经很清晰,这篇文章就来做一个简单的介绍,算是入门。 1、安装protoc 这个工具也称为p

  • Golang 中的 json 与嵌套结构体2022-04-20 01:00:42

    go 中 Marshal 嵌套结构体的结果,与普通结构体所得的结果是不同的。 首先看看示例的结构体定义: type Inner struct { Info string `json:"info"` } type Outer1 struct { Value Inner `json:"inner"` Title string `json:"title"` } type Outer2 struct { Value string `j

  • Golang 中处理 error 的几种方式2022-04-20 01:00:18

    节选自 Go 语言编程模式:错误处理 基础的处理方式 if err != nil Go 语言的一大特点就是 if err != nil ,很多新接触 golang 的人都会非常不习惯,一个常见的函数可能是这样的: func parse(r io.Reader) (*Point, error) { var p Point if err := binary.Read(r, binary.Bi

  • golang之测试testing2022-04-19 14:31:38

    01  介绍 我们使用 Golang 语言开发的项目,怎么保证逻辑正确和性能要求呢?也就是说我们如何测试我们的 Golang 代码呢?在 Golang 语言中,可以使用标准库 testing 包编写单元测试和基准测试,使用 go test 命令执行单元测试和基准测试的代码。本文我们介绍在 Golang 语言中怎么编写测

  • golang添加代理下载加速2022-04-17 20:31:06

    linux/mac 设置你的 bash 环境变量 echo "export GOPROXY=https://goproxy.io,direct" >> ~/.profile && source ~/.profile 如果你的终端是 zsh,使用以下命令 echo "export GOPROXY=https://goproxy.io,direct" >> ~/.zshrc && source ~/.zshrc w

  • golang常用的http请求操作 GET POST总结汇总2022-04-14 17:03:24

    下面主要整理了常用的通过golang发起的GET请求以及POST请求的代码例子 1.golang发起GET请求 基本GET请求 //基本的GET请求 package main import ( "fmt" "io/ioutil" "net/http" ) func main() { resp, err := http.Get("http://httpbin.org/get") if

  • golang_09问题2022-04-14 09:01:27

    package main import ( "fmt" "math/rand" "time" ) func main() { rand.Seed(time.Now().Unix()) fmt.Println(rand.Intn(100)) fmt.Println(rand.Intn(100)) ———————————————— 版权声明:本文为CSDN博主「aslackers」的原创文章,遵循CC 4.0 BY-SA版权协议,转载

  • golang 并发处理2022-04-13 14:01:36

    背景 需要并发的处理的任务 查阅 使用 waitgroup chan 代码实现 package main import ( "fmt" "sync" ) func main() { var l []int receive := func(w chan int, wg *sync.WaitGroup) { for data := range w { l = append(l, data) w

  • [Golang] Goland 编辑器 替换快捷键2022-04-12 09:33:38

    有两个快捷键   ctrl   +   r   是当前页面替换       ctrl + shift + r 是指定路径下替换所有    

  • golang beego后端开发框架(二):配置、路由和控制器2022-04-11 11:34:51

    1. beego参数配置 beego目前支持INI、XML、JSON、YAML格式的配置文件解析,但是默认采用了INI格式解析,用户可以通过简单的配置就可以获得很大的灵活性   1.1 默认配置解析 neego会默认解析当前应用下的 conf/app.conf 文件 当我们使用 bee new 命令新建一个项目时,app.conf 文件默认

  • [golang]批量修改名称2022-04-10 14:35:06

    package main import ( "fmt" "io/fs" "log" "os" "path/filepath" "regexp" "strconv" ) func myWalkFunc(path string, info fs.FileInfo, err error) error { ext := ".rmvb"

  • golang 循环变量2022-04-09 12:00:28

    下面例子: package main import "fmt" func test1() { a1 := []int{1, 2, 3} a2 := make([]*int, len(a1)) for i, v := range a1 { a2[i] = &v } fmt.Println("值:", *a2[0], *a2[1], *a2[2]) fmt.Println("地

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有