going

Go语言入门2(流程控制,string)

流程控制 选择结构(分支语句) ​ 因为switch只能匹配固定值,推荐使用if-else做条件筛选 if-else判断 package main import "fmt" func main() { var tmpA int fmt.Scanln(&tmpA) if tmpA >= 90 { fm ......
流程 语言 string

像python操作attr一样在go里用reflect 操作field (标题与内容弱相关)

用go快两年了,其实是基本没怎么用过反射。主要是感觉对上层的使用来说没啥用。 之前模仿python的getattr和setattr简单写过GetField和SetField,写完简单测了一下就丢一边了也没大量用(因为没有需求啊) func SetField(obj any, attr string, ......
reflect 标题 内容 python field

(转)Go init函数详解

原文:https://blog.csdn.net/benben_2015/article/details/79486077 Go init函数详解init()函数会在每个包完成初始化后自动执行,并且执行优先级比main函数高。init 函数通常被用来: 对变量进行初始化检查/修复程序的状态注册运行一 ......
函数 init

【入门】Go语言排序算法详解

1、冒泡排序 冒泡排序是一种简单的排序算法,它重复地遍历要排序的列表,比较相邻的两个元素,并在必要时交换它们的位置,直到没有任何一对元素需要交换为止。该算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 package main import "fmt" // 我们定义了一个名为`bu ......
算法 语言

go实现一个简单切片迭代器

package main import "fmt" type iterator struct { data []int index int // 索引 } // 通过简单工厂函数构造一个实例对象 func newIterator(data []int) *iterator { return &ite ......

Go语言入门(go环境配置,变量和常量)

go语言特点 天然支持高并发 语法简单,去掉很多臃肿的东西 优化的内存分配和垃圾处理 完善的标准库 go安装 下载:Go下载 - Go语言中文网 - Golang中文社区 (studygolang.com) go version判断是否安装成功 配置环境变量GOROOT ,GOPATH go env ......
常量 变量 语言 环境

Go语言规范汇总

统一规范篇 合理规划目录 本篇主要描述了公司内部同事都必须遵守的一些开发规矩,如统一开发空间,既使用统一的开发工具来保证代码最后的格式的统一,开发中对文件和代码长度的控制,必须经过go语言自带的检测机制等。 【原则1.1】合理规划目录,一个目录中只包含一个包(实现一个模块的功能),如果模块功能复杂考 ......
语言

go 指针

前言: 变量在运行时都拥有一个地址,这个地址代表变量在内存中的位置,当一个指针被定义后没有分配到任何变量时,它的默认值为 nil。 Go语言中使用在变量名前面添加&操作符(前缀)来获取变量的内存地址。 指针变量通常缩写为 ptr。 正文: 通过指针,获取变量的值 num := 5 ptr := &n ......
指针 go

go map

前言: map类型是一个hash表,由键和值组成 正文: map声明格式: var mapname map[keytype] valuetype mapname 为map的变量名 keytype 为键类型 valuetype 是键对应的值类型 未初始化的map的值是nil map创建实例: 方式1: ......
map go

go 切片

前言: 切片的底层是数组,是对数组一个连续片段的引用。 切片和数组的不同在于定义时:数组[]中有值,切片[]中无值 由于数组的长度不可改变,所以Go提供了一种灵活,功能强悍的内置类型切片(“动态数组”)。 切片是一个有三个字段的数据结构,这 3 个字段分别是容量(capacity)、长度(lengt ......
go

Go 连接数据库的增删改查

package main import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" ) var db *sql.DB func initDB() (err error) { dsn := "root:123456@tcp(127 ......
数据库 数据 Go

开心档之Go 错误处理

Go 错误处理 Go 语言通过内置的错误接口提供了非常简单的错误处理机制。 error类型是一个接口类型,这是它的定义: type error interface { Error() string } 我们可以在编码中通过实现 error 接口类型来生成错误信息。 函数通常在最后的返回值中返回错误信 ......
错误

开心档之Go 语言环境安装

Go 语言环境安装 Go 语言支持以下系统: Linux FreeBSD Mac OS X(也称为 Darwin) Windows 安装包下载地址为:https://golang.org/dl/。 如果打不开可以使用这个地址:https://golang.google.cn/dl/。 各个系统对应的 ......
语言 环境

Go 语言:通过TDD驱动开发创建一个 Web 服务器,用户可以在其中跟踪玩家赢了多少场游戏。

你被要求创建一个 Web 服务器,用户可以在其中跟踪玩家赢了多少场游戏。 GET /players/{name} 应该返回一个表示获胜总数的数字 POST /players/{name} 应该为玩家赢得游戏记录一次得分,并随着每次 POST 递增 我们将遵循 TDD 方法,尽可能快地让程序先可用,然 ......
语言 玩家 服务器 用户 TDD

基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 1/3

基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 1/3 基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 2/3 基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 3/3 项目地址:https://gi ......
kubernetes Istio Grpc Go

基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 2/3

基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 1/3 基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 2/3 基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 3/3 项目地址:https://gi ......
kubernetes Istio Grpc Go

基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 3/3

基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 1/3 基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 2/3 基于Go/Grpc/kubernetes/Istio开发微服务的最佳实践尝试 - 3/3 项目地址:https://gi ......
kubernetes Istio Grpc Go

go语言基础

1.常量,变量,指针定义 package main import "fmt" const s = 2 const ( Unknown = 0 Female = 1 Male = 2 ) var n = 3 func main() { a, b, c := 1, 2, "str1" a, b = b, ......
语言基础 语言 基础

go 数组

前言: go中数组的使用, 数组是一个由固定长度的特定类型元素组成的序列, 一个数组可以由零个或多个元素组成, 存放多个同一类型的数据,是一种复杂数据类型 正文: 定义数组语法: var 数组变量名 [元素数量]Type = [元素数量]Type {} 元素数量是常量 一旦定义不能改变 定义方式如下 ......
数组 go

go流程控制语句

前言: go中if else,switch, for ,go的使用 正文: ifelse 流程控制 语法: if 表达式 { //code1 }else if 表达式{ //code2 }else{ //code3 } if条件判断语句中不需要括号 代码示例1: if else isLogin := ......
语句 流程

go常量

前言: Go语言中的常量使用关键字 const 定义,用于存储不会改变的数据, 常量是在编译时被创建的,即使定义在函数内部也是如此 并且只能是布尔型、数字型(整数型、浮点型和复数)和字符串型 正文: 常量的定义 : const name [type] = value 常量规则: 1、常量定义后,可以 ......
常量

go web 框架

在 Go语言开发的 Web 框架中,有两款著名 Web 框架分别是 Martini 和 Gin,两款 Web 框架相比较的话,Gin 自己说它比 Martini 要强很多。Gin 是 Go语言写的一个 web 框架,它具有运行速度快,分组的路由器,良好的崩溃捕获和错误处理,非常好的支持中间件和 js ......
框架 web go

【入门】Go语言Map集合详解

一、Map集合介绍 1.1 什么是Map集合? map集合是一种无序的键值对的集合 map是通过key来快速检索数据,key类似于索引,指向数据的值 在获取 Map 的值时,如果键不存在,返回该类型的零值,例如 int 类型的零值是 0,string 类型的零值是 "" Map 是引用类型,如果将一 ......
语言 Map

【命令设计模式详解】C/Java/JS/Go/Python/TS不同语言实现

简介 命令模式(Command Pattern)是一种数据驱动的设计模式,也是一种行为型设计模式。这种模式的请求以命令的形式包裹在对象中,并传给调用对象。调用对象再寻找合适的对象,并把该命令传给相应的处理者。即把请求或操作封装成单个对象,并使其可以被参数化和延迟执行,这种方式将命令和执行者进行了有效 ......
设计模式 命令 语言 模式 Python

go生成唯一的随机数

需求在并发下生成不同的随机数,使用match/rand下的不满足需要 package main import ( "crypto/rand" "fmt" "math/big" "strconv" "sync" "time" ) func main() { wg := sync.WaitGroup{} ......
随机数

NSQ TCP协议规范-protocol_v2.go

通过本文你将学到: nsq中TCP协议是怎么处理的? nsq是怎么应对升级版本的(通过增加商量协议号,使升级比较方便) nsq使用的网络字节序是什么形式的? TCP通信中为啥要处理粘包?怎么处理粘包?NSQ中又是怎么处理粘包的?http是怎么处理粘包的?若传输的是UDP是否会出现粘包的现象? 一、协 ......
protocol_v protocol NSQ TCP go

用go实现get/post请求调用api

注册登录 首页 专栏 后端 文章详情 用go实现get/post请求调用api Heroine 1 发布于 2022-09-01 上海 最近的一次demo,相当于一次复习吧,把踩的坑都记录一遍 先复习一下调用接口的过程 需要url 是get方法,还是post方法? url需要加参数吗? 序列化? 1 ......
post get api

Go: go module

replace module: module-b module: module-a ......
module Go go

(转)为什么 Go 有两种声明变量的方式,有什么区别,哪种好?

原文:https://blog.csdn.net/EDDYCJY/article/details/122465567 大家好,我是煎鱼。 有一位读者刚入门 Go ,提了一个很有意思的问题:Go 有几种声明变量的方式,作为初学者,到底用哪种,有什么区别,又为什么要有多种声明方式呢? 为此,煎鱼将和大家 ......
变量 方式 Go

go数据类型的转换

前言: Go语言同其他语言不同,不存在隐式类型转换, 因此所有的类型转换都必须显式的声明。go在类型转换方面还是有点乱的。 正文: 整型之间的相互转换 转换方式: newNum := type(oldNum) 示例: newNum := int8(num) 转换为 int8 只能小的往大的数据类型转 ......
类型 数据