ICode9

精准搜索请尝试: 精确搜索
  • elastic v7批量写数据golang2022-05-10 01:02:51

    package main import ( "context" "encoding/json" "fmt" "github.com/olivere/elastic" "log" ) func main() { client, err := elastic.NewClient(elastic.SetURL("http://192.168.2.10

  • Golang 实现 Redis(11): RDB 文件解析2022-05-09 23:02:34

    RDB 文件使用二进制方式存储 Redis 内存中的数据,具有体积小、加载快的优点。本文主要介绍 RDB 文件的结构和编码方式,并借此探讨二进制编解码和文件处理方式,希望对您有所帮助。 本文基于 RDB version9 编写, 完整解析器源码在 github.com/HDT3213/rdb RDB 文件的整体结构 如下图

  • golang 无限极树的结构化返回2022-05-09 16:35:31

    从一篇博客上学习到的方式。作用于树状数据处理返回,很巧妙,学习到了,记录下来。 实现思路   1.获取所有数据list  2.遍历所有数据list,转换为map。以唯一ID为key  3.遍历所有数据list,(这里继续用list,是为了保证按照顺序输出)  4.遍历中,取所有的父级ID。定义为一级子集。  5.

  • Golang知识点汇总2022-05-09 15:35:25

    for select时,如果通道已经关闭会怎么样?如果只有一个case呢?     select用于监听channel,在通道关闭时,channel会返回类型的空值,直接用`<-`取值时无论通道是否关闭都会有值返回.所以当使用select监听通道时,如果某个channel已经关闭,则每次都会执行这个case;     如果只有

  • 8、golang-map2022-05-09 14:01:43

    Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现 map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。map 这种数据结构在其他编程语言中也称为字典(Python)、hash 和 HashTable 等。 Map 是一种无序的键值对的集合。Map 最重要的一点是

  • golang介绍,开发环境和开发工具的安装2022-05-06 00:01:47

    学习网址:https://www.bilibili.com/video/BV1ME411Y71o?spm_id_from=333.337.search-card.all.click 1.官网 : https://go.dev/ 2.下载,安装 3.验证 命令工具输入 go version 出现版本号 4.设置共gopath(环境变量) 我的电脑=>右键=>高级系统设置=>高级=>环境变量=>用户变量=>是否有

  • (二十二)Golang基础之net/http2022-05-05 21:00:15

    Go语言内置的net/http包十分的优秀,提供了HTTP客户端和服务端的实现。 一、net/http介绍 Go语言内置的net/http包提供了HTTP客户端和服务端的实现。 1.1 HTTP协议 超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守

  • (十五)Golang基础之包2022-05-05 14:00:22

    在工程化的Go语言开发项目中,Go语言的源码复用是建立在包(package)基础之上的。本文介绍了Go语言中如何定义包,如何导出包的内容及如何导入其他包。 一、包介绍 包(package)是多个Go源码的集合,是一种高级的代码复用方案,Go语言为我们提供了很多内置包,如fmt、os、io等。 二、定义包 我们还

  • Golang基础2022-05-04 20:05:02

    Golang基础 1. 主要特征 1.1 特征 垃圾回收 丰富的内置类型 多返回值 匿名函数 闭包 OOP 并发编程 反射 错误处理 1.2 命名规则 首字母可以是不能是数组 可以由Unicode字符、下划线、数字构成 长度不限 严格固定首字母大小写,有不同含义 1.3 Go项目 一个Golang工程中主要包含三

  • golang数组类型系列2022-05-04 20:04:17

    golang数组类型系列 数组 数组变量结构 //很单纯,只是将数据放到内存中而已,没有特殊结构。下面的字符串、切片、字典实际上都是结构体 数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。数组的长度是数组类型的组成部分,不同长度或不同类型的数据组

  • (十)Golang基础之切片2022-05-04 18:32:38

    本文主要介绍Go语言中切片(slice)及它的基本使用。 因为数组的长度是固定的并且数组长度属于类型的一部分,所以数组有很多的局限性。 例如: func arraySum(x [3]int) int{ sum := 0 for _, v := range x{ sum = sum + v } return sum } 这个求和函数只能接受

  • (九)Golang基础之数组2022-05-04 18:03:12

    一、Array(数组) 数组是同一种数据类型元素的集合。在Go语言中,声明时就确定,使用时可以修改数组成员,但是数组大小不可变。基本语法: //定义一个长度为3元素类型为int的数组。 var a[3] int 一、数组定义 var 数组变量名 [元素数量]T 比如:var a [5]int, 数组的长度必须是常量,并且长度

  • golang receiver of method方法接收者2022-05-04 13:02:56

    什么是method(方法)?method是函数的另外一种形态,隶属于某个类型的方法。 method的语法: func (r Receiver) funcName (parameters) (result) receiver可以看作是method的第一个参数,method并且支持继承和重写。 Go中虽没有class,但依旧有method 通过显示说明receiver来实现与某个类型的

  • (四)Golang导入本地包2022-05-03 22:33:40

    go module是Go1.11版本之后官方推出的版本管理工具,并且从Go1.13版本开始,go module将是Go语言默认的依赖管理工具。到今天Go1.14版本推出之后Go modules 功能已经被正式推荐在生产环境下使用了。 这几天已经有很多教程讲解如何使用go module,以及如何使用go module导入gitlab私有仓

  • linux下安装golang并配置环境变量2022-05-03 08:31:40

    下载 cd /opt/soft sudo wget https://go.dev/dl/go1.18.1.linux-amd64.tar.gz 解压 sudo tar -xzvf go1.18.1.linux-amd64.tar.gz 进入解压后的go目录 cd go 创建GOPATH目录 mkdir GOPATH 配置环境变量 打开家目录下的.bashrc文件 vim ~/.bashrc 添加两行配置 expo

  • openwrt 运行golang 设置时区2022-05-02 23:02:05

    转载自:https://www.ohyee.cc/post/note_go_read_openwrt_timezone openwrt 运行golang 时候发现打印时间错误。golang读取时区的过程: 读取TZ环境变量 读取/etc/localtime文件 本地时区读取失败,使用 UTC 时间 所以我们可以设置/etc/localtime 的时区。但是/etc/localtime文件不是

  • golang 切片2022-04-30 16:03:54

    slice 切片的底层类似一个struct struct{ ptr *[]byte//指针 len int//长度 cap int//容量(扩容原理) } slice知识点 package main import ( "fmt" ) func test(slice []int) { slice[0] = 100 //会改变切片的值,因为传进来的切片是指针,属于实参传递了 //这里有可能会造成

  • GOLANG copy2022-04-30 16:01:26

    golang 中 copy 函数用于合并两个切片; func copy(dst, src []Type) int  注意copy的长度是dest 和 src 中最小的长度值;   package main import ( "fmt" ) func main() { src := []int{1, 2} dest := []int{} copy(dest, src) fmt.Println(dest) // [] }   pack

  • golang goroutine 父子关系2022-04-29 20:34:33

    很多人认为 父 goroutine 结束后 子goroutine 一定会结束 结论只要main 不结束 goroutine 一定会运行 代码验证 package main import ( "fmt" "time" ) func main() { fmt.Println("main start") go func() { fmt.Println("parent start") go func() {

  • golang slice 错误认知2022-04-29 20:02:31

    很多人在博客看到 slice 扩容策略如下 当大于 1024 则1.5倍 大于1024则两倍 这个结论是错误的 a:= []int{1,2} a= append(a,3,4,5) // 如果是2倍应该 容量是8 但是实际 5 ####### 查阅源码 runtime/slice.go func growslice(et *_type, old slice, cap int) slice {

  • golang time.After 内存泄漏2022-04-29 20:00:14

    官方一段话 time.After 内存gc 不会回收 其实不是 源码 / After waits for the duration to elapse and then sends the current time // on the returned channel. // It is equivalent to NewTimer(d).C. // The underlying Timer is not recovered by the garbage collect

  • 理解Golang组件protobuf2022-04-29 10:35:01

      什么是protobuf# protocol buffers 是一种语言无关、平台无关、可扩展的序列化结构数据的方法,它可用于(数据)通信协议、数据存储等。是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是比 XML 更小(3 ~ 10倍)、更快(20 ~ 100倍)、更为简单。 protobuf与json区别# JSON与

  • Golang 请求限速、排队实现2022-04-29 08:00:59

    概要   在调用第三方 API 的时候, 基本都有访问限速的限制条件. 第三方的 API 有多个的时候, 就不太好控制访问速度, 常常会导致 HTTP 429(Too Many Requests) 然后就会有一段时间的禁止访问.   为了应对这种限速的情况, 通过一个简单的请求队列来控制访问的速度, 之后基本没遇

  • golang单例模式2022-04-28 23:35:07

    定义 单例(Singleton)模式的定义:指一个类只有一个实例,且该类能自行创建这个实例的一种模式,可以看到定义简单,算是设计模式中最简单的一个模式了。 饿汉模式 即还未使用该对象时,对象已经创建完成。方法是通过golang 的init函数,在导包时就自动执行。 package mian import "fmt" var

  • golang json 格式化输出对象2022-04-27 21:33:48

    Json 形式输出 Golang 如果想要按json字符串的形式输出某个对象,先使用 json.Marshal()函数把对象转换成[]byte数组,然后string(obj)强转成字符串后用%v输出,或者直接使用%s输出 对一个对象marshal后,如果 %s 输出能获取到json格式化后的字符串,如果使用 %v 输出,会输出一个字节数组,因为

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

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

ICode9版权所有