go

go算术运算符 ,关系运算符,逻辑运算符等运算符

算术运算符 算术运算符就是加减乘除等操作。 + 相加 A+B - 相减 A-B * 相乘 A*B / 相除 B/A % 求余 B%A ++ 自增 A++ ,go中没有 ++A ,只有 A++ 。另外不能参与运算 -- 自减 A-- ,go中没有 --A ,只要A-- 。另外不能参与运算 示例1:相除 ......
运算符 算术 逻辑

用 Go 剑指 Offer 07. 重建二叉树

输入某二叉树的前序遍历和中序遍历的结果,请构建该二叉树并返回其根节点。 假设输入的前序遍历和中序遍历的结果中都不含重复的数字。 示例 1: Input: preorder = [3,9,20,15,7], inorder = [9,3,15,20,7]Output: [3,9,20,null,nul ......
Offer Go 07

【入门】Go语言切片详解

一、Go语言切片简介 1.1 切片的概念 数组和切片相比较切片的长度是不固定的,可以追加元素,在追加时可能会使切片的容量增大,所以可以将切片理解成 "动态数组",但是,它不是数组。 ......
语言

【go】谈谈一致性哈希算法及其 Golang 实现(含负载均衡算法概述)

教程集为您提供谈谈一致性哈希算法及其 Golang 实现(含负载均衡算法概述)等资源,欢迎您收藏本站,我们将为您提供最新的谈谈一致性哈希算法及其 Golang 实现(含负载均衡算法概述)资源 文章目录 一、概述 二、负载均衡算法 2.1 概述 2.2 轮询算法 2.3 随机算法 2.4 随机轮询算法 ......
算法 一致性 Golang

Go语言:编写一个 WebsiteRacer 的函数,用来对比请求两个 URL 来「比赛」,并返回先响应的 URL。如果两个 URL 在 10 秒内都未返回结果,返回一个 error。

问题: 你被要求编写一个叫做 WebsiteRacer 的函数,用来对比请求两个 URL 来「比赛」,并返回先响应的 URL。如果两个 URL 在 10 秒内都未返回结果,那么应该返回一个 error。 实现这个功能我们需要用到 net/http 用来调用 HTTP 请求 net/http/http ......
两个 URL WebsiteRacer 函数 语言

GO语言Windows安装和VScode配置

(1)去GO官方下载安装软件 https://go.dev/doc/install(2)exe安装,安装目录可以设置在c:\\go(3)环境变量配置,主要是GOROOT、GOPATH,参考https://blog.csdn.net/weixin_48102095/article/details/12 ......
Windows 语言 VScode

Go Expert Programming之iota

前言 iota常用于const表达式中,且其值是从零开始,const声明块中每增加一行iota值自增1。 使用iota可以简化常量定义,但其规则必须要牢牢掌握,否则在我们阅读别人源码时可能会造成误解或障碍。本节我们尝试全面的总结其使用场景,另外花一小部分时间看一下其实现原理,从原理上把握可以更深刻的 ......
Programming Expert iota Go

Swoole协程与Go协程的区别,很详细,很nice

进程、线程、协程的概念进程是什么?进程就是应用程序的启动实例。例如:打开一个软件,就是开启了一个进程。进程拥有代码和打开的文件资源,数据资源,独立的内存空间。 线程是什么?线程属于进程,是程序的执行者。一个进程至少包含一个主线程,也可以有更多的子线程。线程有两种调度策略,一是:分时调度,二是:抢占式 ......
Swoole nice

Go语言环境搭建

1、SDK环境准备 下载地址:https://golang.google.cn/dl/,下载操作系统位数对应的SDK。此处我下载的是64位的,1.17.12版本。 1.1、解压下载的amd64.zip安装包 此处我的解压目录 -> D:\development\GOSDK\go,目录结构如下 1.2 ......
语言 环境

从源码解析Go exec timeout 实现机制

1. 背景 环境:golang 1.9,drawn 测试使用golang exec 执行命令,并配置过期时间,测试脚本如下。 现象:执行脚本后,到超时时间后并为超时退出,反而阻塞住了 func TestExecWithTimeout(t *testing.T) { ctx, cancel := co ......
源码 机制 timeout exec

如何在Go的函数中得到调用者函数名(caller)

在go语言中,可以通过runtimepackage中 Caller函数获取调用者信息 func Caller(skip int) (pc uintptr, file string, line int, ok bool) skip 表示查看第几层调用栈信息,其中0表示的就是当前调用Caller的函数 ......
函数 用者 caller

解决go get无法下载依赖的问题

推荐使用的go版本为1.13及以上版本,声明环境变量 go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.io,direct #设置不用proxy的私有仓库,多用逗号相隔(可选) go env -w GOPRIVATE=*.corp. ......
问题 get

Go语言-安装篇

1.环境说明 OS:windows10 IDE: VsCode Golang: 1.20.2 2.Vscode安装 VsCode官方下载地址 选择相应的操作系统安装即可 3.Golang安装 3.1Golang安装 选择最新版本安装,安装地址 这里我选择的最新版本的1.20.2,安装地址选择 D:\ ......
语言

Go语言实现TCP通信

TCP协议为传输控制协议,TCP协议有以下几个特点:1. TCP是面向连接的传输层协议;2. 每条TCP连接只能有两个端点,每条TCP连接是点到点的通信;3. TCP提供可靠的交付服务,保证传送的数据无差错,不丢失,不重要且有序;4. TCP提供全双工通信,允许双方在任何时候都能发送数据,为此TCP ......
语言 TCP

Go语言中本地包的嵌套调用方法

最近学习区块链,在使用Go语言的过程中遇到本地包之间相互调用的问题,问题分为两个阶段: 1.如何调用本地包(参考文章:https://blog.csdn.net/taoerchun/article/details/104827702): Golang在1.11版本后加入了新特性go modules, ......
语言 方法

【入门】Go语言数组详解

一、Go语言数组简介 1.1 什么是数组? 数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。 因为数组的长度是固定的,所以在Go语言中很少直接使用数组。 数组可以存放多个同一类型数据。数组也是一种数据类型,在Go中,数组是值类型。 数组的每个元素都可以通过索引来访问, ......
数组 语言

用 Go 剑指 Offer 04. 二维数组中的查找

在一个 n * m 的二维数组中,每一行都按照从左到右 非递减 的顺序排序,每一列都按照从上到下 非递减 的顺序排序。请完成一个高效的函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 示例: 现有矩阵 matrix 如下: [ [1, 4, 7, 11, 15], [2, 5, 8 ......
数组 Offer Go 04

用 Go 剑指 Offer 10- II. 青蛙跳台阶问题

一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶。求该青蛙跳上一个 n 级的台阶总共有多少种跳法。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 示例 1: 输入:n = 2输出:2示例 2: 输入:n = 7输出:21示例 3: 输入:n ......
台阶 青蛙 问题 Offer Go

用 Go 剑指 Offer 09. 用两个栈实现队列

用两个栈实现一个队列。队列的声明如下,请实现它的两个函数 appendTail 和 deleteHead ,分别完成在队列尾部插入整数和在队列头部删除整数的功能。(若队列中没有元素,deleteHead 操作返回 -1 ) 示例 1: 输入:["CQueue","appendTail","delet ......
队列 两个 Offer Go 09

为什么 Go 不支持 []T 转换为 []interface

为什么 Go 不支持 []T 转换为 []interface Go语言中文网 2023-03-27 08:52 发表于北京 以下文章来源于AlwaysBeta ,作者yongxinz AlwaysBeta. 大厂程序员,专注分享硬核后端开发技术。每天早上 8 点分享一篇高质量文章,内容包括编程语言、 ......
interface Go

【入门】Go语言函数详解

一、函数介绍 1.1 函数介绍 函数是基本的代码块,完成某一功能的程序指令(语句)集合,用于执行一个任务。 函数声明告诉了编译器函数的名称,返回类型,和参数 Go提供了很多内置函数,比如len()函数可以接受不同类型参数,并返回该参数的长度 不支持重载(函数名称不能重复定义) 1.2 函数语法定义 ......
函数 语言

Go语言——正则表达式

概述: 概念: 正则表达式(regular expression)就是由元字符组成的⼀种字符串匹配的模式,使⽤这种模式可以实现对⽂本内容解析、校验、替换。 正则表达式的⽤途: 数据有效性验证:⽤户注册模块是应⽤正则表达式最集中的地⽅,主要是 ⽤于验证⽤户帐号、密码、EMAIL、电话号码、QQ号码、身 ......
正则 表达式 语言

Go语言:通过TDD驱动测试开发为同事写的程序优化提速——初次接触并发与channel

正文: 假如同事已经写了一个 CheckWebsites 的函数检查 URL 列表的状态。 package concurrency type WebsiteChecker func(string) bool func CheckWebsites(wc WebsiteChecker, urls []s ......
同事 channel 语言 程序 TDD

go基础语法规则

前言: go语言基础语法记录 正文: 1、package package中必须包含一个main的package,并且只能有一个,不然无法编译 2、使用 import 导入包,使用goland 会自动导入 3、每行的结尾不需要 增加结束符 ; 4、字符串只能使用双引号,不能使用单引号 5、单引号中只能 ......
语法 规则 基础

window和linux如何将go代码打包成可执行程序

前言: 在window下代码写好了,如何部署到linux呢,或者怎么打包成exe程序,在window下运行呢?查看正文 正文: window下如何打包成exe文件,并运行。 打开goland,点击Terminal 终端 输入指令: go env 查看 GOOS是否windows 我这里之前改过。所以 ......
代码 程序 window linux

【入门】Go语言for循环

一、for循环基本结构 1.1 for循环 语法: for 初始化变量; 条件判断; 修正变量 { 循环体 } 案例:打印十遍,今晚不熬夜 package main import "fmt" func main() { for i := 0; i < 10; i++ { fmt.Println("今 ......
语言 for

Go接入kafka

需要借助的库 github.com/Shopify/sarama // kafka主要的库* github.com/bsm/sarama-cluster // kafka消费组 生产者 package producer import ( "fmt" "github.com/HappyTeemo756 ......
kafka

Go 语言:通过TDD测试驱动开发学习 Mocking (模拟)的思想

正文: 现在需要你写一个程序,从 3 开始依次向下,当到 0 时打印 「GO!」 并退出,要求每次打印从新的一行开始且打印间隔一秒的停顿。 3 2 1 Go! 我们将通过编写一个 Countdown 函数来处理这个问题,然后放入 main 程序,所以它看起来这样: package main func ......
Mocking 语言 思想 TDD Go

Go语言:一文看懂什么是DI依赖注入(dependency injection)设计模式

前言: 本文主要介绍的是Goalng中关于 DI 的部分,前一部分会先通过典型的面向对象语言Java引入DI这个概念 仅供初学者理解使用,文章如有纰漏敬请指出 本文涉及到的知识面较为零散,其中包含面向对象编程的 SOLID原则、各语言典型的DI框架等,博主都已插入连接🔗供读者访问自行查阅 另外本文 ......

GO实现Redis:GO实现Redis集群(5)

采用一致性hash算法将key分散到不同的节点,客户端可以连接到集群中任意一个节点 https://github.com/csgopher/go-redis 本文涉及以下文件: consistenthash:实现添加和选择节点方法 standalone_database:单机database cli ......
Redis 集群