一道golang

Golang学习笔记-变量

## 声明变量 > 声明变量关键字`var` ``` var {变量名称} {变量类型} ``` ### 例子 ```go // 声明一个变量为v1的整型变量,未赋值时默认值为0 var v1 int // 声明一个变量为v2的浮点型变量,未赋值时默认值为0 var v2 float32 // 声明 ......
变量 笔记 Golang

gain 基于io_uring 的golang 网络框架

io_uring 是linux kernel 从5.1开始支持的新的io 操作模式,性能很不错,gain 是一个golang 实现 参考使用 main.go package main import ( "fmt" "log" "net" "os" "sync/atomic" "time" "gith ......
框架 io_uring golang uring 网络

golang GRPC example

REF: Golang gRPC Example install protobuf go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28 go install google.golang.org/grpc/cmd/protoc-g ......
example golang GRPC

golang struct interface 方法

有一个结构体 ``` type mystruct struct { a int } ``` 如果想为这个结构体增加一个方法,就类似于C++或者Java的类一样,有成员变量,也有成员函数,怎么实现呢?由于go没有类的概念,所以提供了一种方案。 ``` func (ms mystruct) test() ......
interface 方法 golang struct

让golang程序生成coredump文件并进行调试

今天讲讲怎么让golang程序生成coredump文件,并且进行调试的。 别看我写了不少golang的博客,其实我平时写c++的时间更多,所以也算和coredump是老相识了。`core dump`文件实际上是进程在某个时间点时的内存映像,当时进程使用的内存是啥样就会被原样保存下来存在文件系统的某个 ......
coredump 文件 程序 golang

Dockerfile加载cache提速制作golang业务镜像

Dockerfile # syntax=docker/dockerfile:1.2 FROM golang-1.18.5:ubuntu-22.04 AS builder ENV CGO_ENABLED 0 ENV GOOS linux ENV GOPROXY https://goproxy.cn,d ......
Dockerfile 镜像 业务 golang cache

Dockerfile制作golang-ubuntu_22.04基础镜像

Dockerfile FROM ubuntu:22.04 ADD go1.18.5.linux-amd64.tar.gz /usr/local ENV PATH=/usr/local/go/bin:$PATH 生成镜像 # docker build -f Dockerfile -t golang-1 ......

golang中的sync.Map

golang中,同时读写map是线程不安全的,可能会出现panic错误: fatal error: concurrent map read and map write Go语言在 1.9 版本中提供了一种效率较高的并发安全的 sync.Map,sync.Map 和 map 不同,不是以语言原生形态提 ......
golang sync Map

linux环境安装golang

在使用pprof工具分析性能时,发现我们的环境上默认没有装go,所以执行不了go tool pprof命令,于是自己手动装了下。步骤如下: 首先下载一个对应系统架构的golang包,这里我用的是arm包,装的1.14.12版本。(见附件)。在环境上创一个个人目录,把包传上去,然后执行以下命令解压到/ ......
环境 golang linux

Golang中的Channel(一)

Golang在并发编程上有两大利器,分别是channel和goroutine。Golang中有一句名言:“使用通信来共享内存,而不是通过共享内存来通信”。这句话有两层意思,Go语言确实在sync包中提供了传统的锁机制,但更推荐使用channel来解决并发问题。这里先对Channel做一个基本的介绍, ......
Channel Golang

Golang中的Channel(二)

上篇介绍了Channel是什么以及它的类型,这篇总结一下Channel的用法。 基本语法 (1) 声明channel 声明channel的语法格式为: var ChannelName chan ElementType 与其他变量声明不同的是,在类型前面多了一个chan关键字。ElementType指 ......
Channel Golang

golang中的空切片和nil切片

Golang中的切片是很基本的数据结构,它的底层是一个数组,表层是一个包含三个变量的结构体: type slice struct { array unsafe.Pointer //指针,指向底层的数组 length int //切片的长度 capcity int //切片的容量 } 当把一个切片赋值 ......
golang nil

Golang的类图

@[toc] # 1. 依赖(Dependency) ## 1.1 概念 类与类的链接,A依赖于B,B的变化引起A的变化。 go中表现为B是A的方法的参数。 ## 1.2 代码示例 - 定义两个结构体`植物`和`天气` - 定义`植物`的方法`生长`,它需要参数`天气` - 实例化`植物`和`天气` ......
Golang

golang 解析yaml文件

#### 初始化 ```go package main import ( "github.com/spf13/viper" ) func initConfig() { viper.SetConfigName("config") viper.AddConfigPath("./") if err := ......
文件 golang yaml

Golang起步篇

# 一. 安装Go语言开发环境 ## 1. Wondows下搭建Go开发环境 ### (1). 下载SDK工具包 **sdk下载地址为:**[__https://go.dev/dl/__](https://go.dev/dl/) ![](https://tcs-devops.aliyuncs.com ......
Golang

golang解决go get下载失败解决办法

原因: 所下载的库依赖有官方库,而官方被封禁网导致。 方法: 设置代理 go env -w GOPROXY=https://goproxy.cn ps: go1.11发布后,还发布一个goproxy提供代理服务,goproxy.cn是专门服务于中国的,依赖于七牛云 github地址:https:// ......
办法 golang get

golang汇编学习(寄存器)

好久没有写博客了,上一篇写的汇编只是简单的调试了一下,这段时间又看了下,做一个简单的汇总。 两个代码 汇编代码,1_amd64.s TEXT ·add(SB),$0-0 MOVQ a+0(FP),AX MOVQ b+8(FP),BX ADDQ AX,BX MOVQ BX,c+16(FP) RET 主 ......
寄存器 golang

CentOS 9 x64 使用 Nginx、Supervisor 部署 Go/Golang 服务

## 前言 在 CentOS 9 x64 系统上,可以通过以下步骤来部署 Golang 服务。 ## 1\. 安装必要的软件包 安装以下软件包: 1. Golang:Golang 编程语言 2. Nginx:Web 服务器 3. Supervisor:进程管理工具 4. Git:版本控制工具 5. ......
Supervisor CentOS Golang Nginx x64

golang 实现四层负载均衡

> 大家好,我是蓝胖子,做开发的同学应该经常听到过负载均衡的概念,今天我们就来实现一个乞丐版的四层负载均衡,并用它对mysql进行负载均衡测试,通过本篇你可以了解到零拷贝的应用,四层负载均衡的本质以及实践。 本文代码已经上传到github ```shell https://github.com/Ho ......
golang

余同取余的一道变式题目

二刷,本题感悟:善于从全局出发,也要学会从个例中找特点。 ![image.png](https://image.baidu.com/search/down?url=https://tvax4.sinaimg.cn/large/a88e0064ly1hffyigelfrj20pg05rq52.jpg) ......
题目 一道

golang之copier

今天我们要介绍的copier库就能处理不同类型之间的赋值。除此之外,copier还能: 调用同名方法为字段赋值; 以源对象字段为参数调用目标对象的方法,从而为目标对象赋值(当然也可以做其它的任何事情); 将切片赋值给切片(可以是不同类型哦); 将结构体追加到切片中。 快速使用 先安装: $ go g ......
golang copier

Golang 简单的数据对齐可提高程序速度和内存使用率

### 序 Golang 中的结构或 struct 是用户定义的类型,允许将可能不同类型的项分组/组合为单一类型。 可以说是一个不支持继承但支持组合的轻量级类。 我们使用 Golang 编写代码的时候,你肯定使用过`struct`。 但是,你可能不知道的是,通过简单地重新排序结构中的字段,可以极大地 ......
使用率 内存 速度 程序 数据

golang之go-spew

我们在使用Golang(Go语言)开发的过程中,会通过经常通过调试的方式查找问题的原因,解决问题,尤其是当遇到一个很棘手的问题的时候,就需要知道一段代码在执行的过程中,其上下文的变量对应的数据,以便进行推测出问题的原因。 对于这类调试,我们用的比较多的一个是断点调试,还有是通过打印日志输出。通过日志 ......
go-spew golang spew go

golang怎么改进csv导入到sqlite的速度

Crafted by [Genie](https://marketplace.visualstudio.com/items?itemName=genieai.chatgpt-vscode) ## You golang怎么改进csv导入到sqlite的速度 ## Genie 在将CSV数据导入到SQL ......
速度 golang sqlite csv

Golang空结构体struct{}的作用?

### 介绍 在平时做项目得时候,经常会看到很多包里面定义了结构体。 e.g. 在`context`包里面`Context`接口中的`Done()`方法,`Done()`返回一个是以空结构体定义数据的通道`chan struct{}`,那这里他是有什么特殊用意吗?我们接下来分析`struct{}`的 ......
作用 结构 Golang struct

【Go/golang】原生监听处理http请求的写法

原文地址:https://github.com/astaxie/build-web-application-with-golang/blob/master/zh/03.4.md 由于自己经常忘了怎么写,而Github又经常抽风,所以这里做个备份 ``` package main import ( " ......
写法 golang http Go

精选Golang高频面试题和答案汇总

之前写的《 GO必知必会面试题汇总》,已经阅读破万,收藏230+。这篇文章给大家整理了17道Go语言高频面试题和答案详解,每道题都给出了代码示例,方便大家更好的理解。 ......
答案 Golang

36-golang动态创建类

### 动态创建类 (1.)使用反射创建类 ``` import `reflect` var typeRegistry = make(map[string]reflect.Type) func RegisterType(elem interface{}) { t := reflect.TypeOf( ......
动态 golang 36

golang之类型转换cast

Go 语言作为强类型语言,在使用 Golang 开发项目时,经常会遇到类型转换的场景,整型之间可以直接转换,字节切片和字符串之间也可以直接转换。 但是,如果整型和字符串之间做类型转换,则需要使用 strconv 标准库提供的函数。 01 标准库 strconv 类型转换 Go 语言标准库 strco ......
类型 golang cast

golang使用core dump分析定位程序崩溃问题

原创 萧瑟 golang面试经典讲解 2023-06-23 19:05 发表于上海 收录于合集 #go语言6个 #go6个 ##go工具15个 一、前言 core dump 是一个包含着意外终止的程序其内存快照的文件。这个文件可以被用来事后调试(debugging)以了解为什么会发生崩溃,同时了解其 ......
程序 golang 问题 core dump