GO

Go 方法集合与选择receiver类型

Go 方法集合与选择receiver类型 目录Go 方法集合与选择receiver类型一、receiver 参数类型对 Go 方法的影响二、选择 receiver 参数类型原则2.1 选择 receiver 参数类型的第一个原则2.2 选择 receiver 参数类型的第二个原则三、方法集合(Met ......
receiver 类型 方法 Go

Go 方法介绍,理解“方法”的本质

Go 方法介绍,理解“方法”的本质 目录Go 方法介绍,理解“方法”的本质一、认识 Go 方法1.1 基本介绍1.2 声明1.2.1 引入1.2.2 一般声明形式1.2.3 receiver 参数作用域1.2.4 receiver 参数的基类型约束1.2.5 方法声明的位置约束1.2.6 如何使用方 ......
方法 本质 Go

Viper —— configuration solution for Go

1. support several formats of configuration config.yaml name: 'bobby' port: 12334 main.go to quick start package main import ( "fmt" "github.com/spf13 ......
configuration solution Viper for Go

Go语言定时器实战:性能优化与实用技巧

Go语言定时器实战:性能优化与实用技巧 原创 Go先锋 Go先锋 2023-11-03 07:58 发表于广东 收录于合集#Go语言包29个 Go 先锋 读完需要 8分钟 速读仅需 3 分钟 概述 在日常开发中,定时器是一个非常常用且重要的功能。 它可以让程序在特定的时间间隔内执行某些任务,比如定时 ......
定时器 实用技巧 实战 性能 语言

Go语言基准测试(benchmark)三部曲之三:提高篇

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 -《Go语言基准测试(benchmark)三部曲》已近尾声,经历了《基础篇》和《内存篇》的实战演练,相信您已熟练掌握了基准测试的常规操作以及各种 ......
三部曲 基准 benchmark 语言

Go高级工程师实战营-深度Go语言大厂真实项目性能优化

Go高级工程师实战营-深度Go语言大厂真实项目性能优化 一、性能优化工具-pprof 1. 简介 性能调优原则。 要依靠数据不是猜测。 要定位最大瓶颈而不是细枝末节。 不要过早优化。 不要过度优化。 2. 性能分析工具 pprof 熟练使用 pprof 工具排查性能问题并了解其基本原理。 pprof ......

Go语言gin框架入门到精通,涵盖文件服务器、中间件、安全认证、数据库

Go语言gin框架入门到精通,涵盖文件服务器、中间件、安全认证、数据库 Gin 官方文档:Gin Web Framework (gin-gonic.com) 仓库地址:gin-gonic/gin: Gin is a HTTP web framework written in Go (Golang) ......

Go语言Golang DevOps运维开发实战集训营,高级运维必修

Go语言Golang DevOps运维开发实战集训营,高级运维必修 Go语言简介 Go语言,也称为Golang,是一门由Google开发的开源编程语言。它的设计目标是提供一种高效、简洁、安全且支持并发的编程语言,适用于构建可靠且高性能的软件系统。Go语言在短短的时间内迅速走红,成为开发者们喜爱的选择 ......
实战 语言 Golang DevOps

Go语言百万高薪开发架构师一线大牛亲授+企业项目实战+云原生架构核心

Go语言百万高薪开发架构师一线大牛亲授+企业项目实战+云原生架构核心 第1章 云原生架构 1.1 云计算的历史 1.1.3 容器的横空出世和容器编排大战 上一次我们 提到了PaaS,PaaS的开源产品Docker对云计算领域产生了深远的影响,从虚拟机到容器,整个云计算市场发生了一次重大变革。 容器化 ......
架构 实战 一线 高薪 核心

go 里面数组切片[:] 底层是复制一个新的

package ethereum import ( "testing" "unsafe" ) func Test1(t *testing.T) { a := "dafasdf" b := a[:] println(unsafe.Pointer(&a)) //0xc000063e78 println( ......
数组 底层 go

go协程的2+1

go协程使用心得-go协程的2+1 go协程只做两件事:执行逻辑函数、监听执行状态并且控制流程 go协程一次只做一件事:执行逻辑函数或监听执行状态并且控制流程 1 func TestCtx(t *testing.T) { 2 ctx, cancel := context.WithTimeout(co ......

Go可以做到同等并发能力么?具体代码如何写?

原创 磊丰 Go语言圈 2023-09-05 08:30 发表于广东 收录于合集#学Go语言哪些事儿231个 MySQL大牛 带你全面剖析与系统梳理数据库(mysql等)知识分享,总结数据库技巧和方法,提升你的技术技能。 45篇原创内容 公众号 JetBrains全家桶正式版激活码&账号开通授权,支 ......
能力 代码

Go标准库Context

在 Go http包的Server中,每一个请求在都有一个对应的 goroutine 去处理。请求处理函数通常会启动额外的 goroutine 用来访问后端服务,比如数据库和RPC服务。用来处理一个请求的 goroutine 通常需要访问一些与请求特定的数据,比如终端用户的身份认证信息、验证相关的t ......
Context 标准

09Go语言基础之函数

函数是组织好的、可重复使用的、用于执行指定任务的代码块。本文介绍了Go语言中函数的相关内容。 函数 Go语言中支持函数、匿名函数和闭包,并且函数在Go语言中属于“一等公民”。 函数定义 Go语言中定义函数使用func关键字,具体格式如下: func 函数名(参数)(返回值){ 函数体 } 其中: 函 ......
语言基础 函数 语言 基础 09

16Go语言基础之接口

接口(interface)定义了一个对象的行为规范,只定义规范不实现,由具体的对象来实现规范的细节。 接口 本章学习目标 了解为什么需要接口以及接口的特点 掌握接口的声明和使用 掌握接口值的概念 掌握空接口的特点及其使用场景 在Go语言中接口(interface)是一种类型,一种抽象的类型。相较于之 ......
语言基础 接口 语言 基础 16

Go语言标准库log介绍

无论是软件开发的调试阶段还是软件上线之后的运行阶段,日志一直都是非常重要的一个环节,我们也应该养成在程序中记录日志的好习惯。 log Go语言内置的log包实现了简单的日志服务。本文介绍了标准库log的基本使用。 使用Logger log包定义了Logger类型,该类型提供了一些格式化输出的方法。本 ......
语言 标准 log

08Go语言基础之map

Go语言中提供的映射关系容器为map,其内部使用散列表(hash)实现。 map map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。 map定义 Go语言中 map的定义语法如下: map[KeyType]ValueType 其中, KeyType ......
语言基础 语言 基础 map 08

12Go语言基础之结构体

Go语言中没有“类”的概念,也不支持“类”的继承等面向对象的概念。Go语言中通过结构体的内嵌再配合接口比面向对象具有更高的扩展性和灵活性。 类型别名和自定义类型 自定义类型 在Go语言中有一些基本的数据类型,如string、整型、浮点型、布尔等数据类型, Go语言中可以使用type关键字来定义自定义 ......
语言基础 语言 结构 基础 12

Go语言基础之error接口

Go 语言中的错误处理与其他语言不太一样,它把错误当成一种值来处理,更强调判断错误、处理错误,而不是一股脑的 catch 捕获异常。 Error接口和错误处理 Error 接口 Go 语言中把错误当成一种特殊的值来处理,不支持其他语言中使用try/catch捕获异常的方式。 Error 接口 Go ......
语言基础 接口 语言 基础 error

Go语言标准库flag基本使用

Go语言内置的flag包实现了命令行参数的解析,flag包使得开发命令行工具更为简单。 os.Args 如果你只是简单的想要获取命令行参数,可以像下面的代码示例一样使用os.Args来获取命令行参数。 package main import ( "fmt" "os" ) //os.Args demo ......
语言 标准 flag

10Go语言基础之指针

区别于C/C++中的指针,Go语言中的指针不能进行偏移和运算,是安全指针。 要搞明白Go语言中的指针需要先知道3个概念:指针地址、指针类型和指针取值。 Go语言中的指针 任何程序数据载入内存后,在内存都有他们的地址,这就是指针。而为了保存一个数据在内存中的地址,我们就需要指针变量。 比如,“永远不要 ......
语言基础 指针 语言 基础 10

06Go语言基础之数组

本文主要介绍Go语言中数组(array)及它的基本使用。 Array(数组) 数组是同一种数据类型元素的集合。 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化。 基本语法: // 定义一个长度为3元素类型为int的数组a var a [3]int 数组定义: var ......
语言基础 数组 语言 基础 06

07Go语言基础之切片

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

05Go语言基础之流程控制

流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”。 Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码、降低重复代码而生的结构,属于扩展类的流程控制。 if else(分支结构) if条件判断基本写法 Go语言中if条件判断 ......
语言基础 语言 基础 05 Go

04Go语言基础之运算符

运算符用于在程序运行时执行数学或逻辑运算。 运算符 Go 语言内置的运算符有: 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 算术运算符 运算符 描述 + 相加 - 相减 * 相乘 / 相除 % 求余 注意: ++(自增)和--(自减)在Go语言中是单独的语句,并不是运算符。 关系运算符 ......
语言基础 运算符 语言 基础 04

4如何使用go module导入本地包

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

02Go语言基础之变量和常量

变量和常量是编程中必不可少的部分,也是很好理解的一部分。 标识符与关键字 标识符 在编程语言中标识符就是程序员定义的具有特殊意义的词,比如变量名、常量名、函数名等等。 Go语言中标识符由字母数字和_(下划线)组成,并且只能以字母和_开头。 举几个例子:abc, _, _123, a123。 关键字 ......
语言基础 常量 变量 语言 基础

03Go语言基础之基本数据类型

Go语言中有丰富的数据类型,除了基本的整型、浮点型、布尔型、字符串外,还有数组、切片、结构体、函数、map、通道(channel)等。Go 语言的基本类型和其他语言大同小异。 基本数据类型 整型 整型分为以下两个大类: 按长度分为:int8、int16、int32、int64 对应的无符号整型:ui ......
语言基础 语言 类型 基础 数据

1从零开始搭建Go语言开发环境

Go1.14版本,一步一步,从零搭建Go语言开发环境。 因为Go语言及相关编辑工具的更新迭代,本文已于2021/05/12更新,可能会和视频有所出入,请以更新后的本文为准。 安装Go语言及搭建Go语言开发环境 注意:Go语言1.14版本之后推荐使用go modules管理依赖,也不再需要把代码写在G ......
语言 环境

2VS Code配置Go语言开发环境

VS Code是微软开源的一款编辑器,插件系统十分的丰富。本文就介绍了如何使用VS Code搭建Go语言开发环境。 因为Go语言及相关编辑工具的更新迭代,本文已于2020/03/25更新,可能会和视频有所出入,请以更新后的本文为准。 VS Code配置Go语言开发环境 说在前面的话,Go语言是采用U ......
语言 环境 Code 2VS VS