指针go
函数指针、类成员函数指针学习
转自:https://www.runoob.com/w3cnote/cpp-func-pointer.html,写的非常好 1.函数指针 函数的函数名就是它的地址,存储在代码区。如同数组一样,数组的名字就是数组的起始地址。 定义: data_types (*func_pointer)( data_t ......
指针
指针 指针类型和指针类型的转换 https://www.cnblogs.com/chanabi/p/9228998.html 预备知识复习: 1. 地址,字节和位: 位(bit)是计算机最小的数据单位,每一位的状态只能是0或1; 字节(Byte)是用于计算存储容量的一种单位,每一个字节由8位组成(1 ......
Go 语言为什么建议多使用切片,少使用数组?
大家好,我是 frank,「Golang 语言开发栈」公众号作者。 01 介绍 在 Go 语言中,数组固定长度,切片可变长度;数组和切片都是值传递,因为切片传递的是指针,所以切片也被称为“引用传递”。 读者朋友们在使用 Go 语言开发项目时,或者在阅读 Go 开源项目源码时,发现很少使用到数组,经常 ......
C 语言指针完全指南:创建、解除引用、指针与数组关系解析
C 语言中的指针 创建指针 我们可以使用引用运算符 & 获取变量的内存地址: int myAge = 43; // 一个 int 变量 printf("%d", myAge); // 输出 myAge 的值 (43) printf("%p", &myAge); // 输出 myAge 的内存地址 ( ......
go SSH远程终端及WebSocket
目前chisel基于tcp http websocket 的ssh 代理!! 所以这个东西不就是可以直接远程登录了吗?就行jumpserver 一样 和chisel 一样使用 ssh go get "github.com/gorilla/websocket" go get "golang.org/x ......
使用Ventoy制作Win to Go和Fedora to Go双系统
这是一次简短的记录 整体的思路实际上是通过虚拟机制作安装好系统的虚拟磁盘文件,然后加载到Ventoy中,从Ventoy启动 Ventoy官方网站 在实现的过程中,首先需要对存储介质(U盘等等,我是用的是固态硬盘盒)进行初始化并安装Ventoy 随后使用虚拟机来安装系统,装在物理机的硬盘上就可以了,大 ......
如何使用Go语言进行数据库操作
如何使用Go语言进行数据库操作 https://www.php.cn/faq/587088.html 引言:Go语言是一种高效且简洁的编程语言,拥有强大的并发能力和优秀的性能表现。在开发过程中,与数据库的交互是一个非常重要的环节。本文将介绍如何使用Go语言进行数据库操作,包括连接数据库、CRUD操作 ......
探索適用於Pokemon Go粉絲的 PGSharp iOS 替代品
PGSharp 是Pokemon Go玩家中的著名工具,尤其是 Android 用戶。 它允許玩家偽裝他們的位置,使他們能夠在不離開家的情況下從世界任何地方捕捉精靈寶可夢。 然而,iOS 用戶經常發現自己需要尋找替代品,因為 PGSharp 主要是為 Android 設計的。 本文探討了一些最佳的 ......
Go代码测试覆盖率
Go代码测试覆盖率 目录结构 ├── main.go └── main_test.go 代码 // main.go package main import "fmt" func Divide(a, b float64) (float64, error) { if b == 0 { return 0, ......
Go如何优雅的写数据库的单测
Go如何优雅的写数据库的单测 遇到的问题 当你想在代码中测试 Gorm 时,可以考虑使用单元测试或集成测试来确保 Gorm 的功能正常。下面是一个简单的示例,展示了如何编写一个基本的 Gorm 单元测试。 代码目录结构 app config config.yaml conf.go service ......
go语言defer,panic,recover 与错误处理
三个关键字 defer:在函数中,经常要打开资源(如:文件打开,数据库连接等),为了在函数执行后,及时释放资源,go的设计者提供defer(延时机制) panic:内置函数,接收一个interface{}类型的值(也就是任何值)作为参数,可接收error类型的变量,输出错误信息,并退出程序。 err ......
go 语言指针
指针 // 定义指针变量: var a *int // 给指针变量赋值 var b int = 10 a = &b // 打印变量地址 fmt.Println(&b) // 通过 & 符号取变量地址 // 打印指针变量 fmt.Println(a) //打印出来是个地址 // 打印指针变量值 fmt ......
Go 如何实现可重入锁
一、什么是可重入锁可重入锁又称为递归锁,是指在同一个线程在外层方法获取锁的时候,在进入该线程的内层方法时会自动获取锁,不会因为之前已经获取过还没释放再次加锁导致死锁。 Go 里面的 Mutex 不是可重入的锁。Mutex 的实现中没有记录哪个 goroutine 拥有这把锁。理论上,任何 gorou ......
指针和引用的区别?
1. 指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用仅是个别名; 2. 引用使用时无需解引用(*),指针需要解引用; 3. 引用只能在定义时被初始化一次,之后不可变;指针可变; 4. 引用没有 const,指针有 const; 5. 引用不能为空,指针可以为空; 6. ......
安装和配置 go
# 安装和配置 go ## brew ```bash $ brew install go ``` 其他方式,可参考官网:https://go.dev/dl/ ## 配置代理 环境变量 ```bash $ echo "export GO111MODULE=on" >> ~/.profile $ ech ......
Go中的switch的6种使用:没有你想象中那么简单
Go中的switch的6种使用:没有你想象中那么简单 原创 二师兄 程序新视界 2023-12-04 07:10 发表于北京 听全文 Go以其简洁而著称,但并不是每个人都熟悉这种语言中switch语句的多样性。首先,如果你对Go的switch语句还不熟悉,它可能与其他语言相比有些不同。 下面是一个简 ......
指向指针的指针
void func(int **a) { int **p = a; *p = new int (3); cout<<"p="<<p<<"*p="<<*p<<"**p="<<**p<<endl; } int *a = 0; func(&a); cout<<"a="<<a<<"*a="<<*a<<end ......
带头指针单向链表实现线性结构
#include <stdio.h> #include <stdlib.h> #define Elemtype int #define ERROR -1 typedef struct Node { Elemtype e; Node* next; }Node,*LinkList; void InitL ......
go gorm 更新的时候不会更新空字段
做个记录,gorm在更新字段的时候,如果字符串字段是空的,那么将不会更新到数据库。 在使用gorm将一个字段更新为空的时候,发现并不生效,不了解具体什么原因,所以此时需要打开debug模式,查看原生SQL是如何执行的。 type Student struct { Model Email string ......
Go语言常见错误| 意外的变量隐藏
Go语言常见错误| 意外的变量隐藏 原创 云原生Go 源自开发者 2024-01-04 07:46 发表于广东 听全文 源自开发者 专注于提供关于Go语言的实用教程、案例分析、最新趋势,以及云原生技术的深度解析和实践经验分享。 62篇原创内容 公众号 在Go语言中,变量隐藏(Variable Sha ......
HashiCorp联合创始人:Go是成功且无悔的选择
HashiCorp联合创始人:Go是成功且无悔的选择 Tony Bai 40 人赞同了该文章 提到HashiCorp这个公司,可能很多人都没听说过。但提到vagrant、consul、nomad、terraform或者vault,那么你一定对这些工具或其中之一有所耳闻。这些工具都是HashiCorp ......
Go语言
存储结构: 1、切片 切片是Go中重要的数据类型,每个切片对象内部都维护着:数组指针(切片的地址)、切片长度、切片容量三个数据 长度是目前存储的数量,容量是最大存储数量 在向切片中追加的数据个数大于容量时,内部会自动扩容且每次扩容都当前容量的两倍(当容量超过1024时每次扩容则只增加当前容量的1/4 ......
手写智能指针(类)
基础知识: 智能指针的设计与实现: 1.智能指针类将一个计数器与类指向的对象相关联,引用计数跟踪该类有多少个对象共享同一指针。 2.每次创建类的新对象时,初始化指针并将引用计数置为1; 3/当对象作为另一对象的副本而创建时,拷贝构造函数拷贝指针并增加与之相应的引用计数; 4.对一个对象进行赋值时,赋 ......
2024-01-03:用go语言,给你两个长度为 n 下标从 0 开始的整数数组 cost 和 time, 分别表示给 n 堵不同的墙刷油漆需要的开销和时间。你有两名油漆匠, 一位需要 付费 的油漆匠
2024-01-03:用go语言,给你两个长度为 n 下标从 0 开始的整数数组 cost 和 time, 分别表示给 n 堵不同的墙刷油漆需要的开销和时间。你有两名油漆匠, 一位需要 付费 的油漆匠,刷第 i 堵墙需要花费 time[i] 单位的时间, 开销为 cost[i] 单位的钱。 一位 免 ......
go-carbon v2.3.2 发布,轻量级、语义化、对开发者友好的 Golang 时间处理库
carbon 是一个轻量级、语义化、对开发者友好的 golang 时间处理库,支持链式调用。 目前已被 awesome-go 收录,如果您觉得不错,请给个 star 吧 github.com/golang-module/carbon gitee.com/golang-module/carbon 安装 ......
Go - struct instance
func TestLoadConfig(t *testing.T) { var config Config fmt.Printf("%+v", config) require.Nil(t, config) } RUN TestLoadConfig {Environment:} /zdata/Gith ......
C语言指针详解
一、指针的定义 指针是C语言的灵魂,数据结构的基础。 首先我们给出指针的官方定义:指针(英语:Pointer),是在许多编程语言中用来存储内存地址的变量。 简化一下,指针是变量,它是表示内存地址的。类比一下int,我们知道int表示的是整型,char表示的是字符型,那么指针就是表示的是内存型。 我们 ......
[go 面试] 为并发加锁:保障数据一致性(分布式锁)
原创 TimLiu 爱发白日梦的后端 2023-12-01 08:01 发表于广东 爱发白日梦的后端 专注 Go 语言领域的发展,学习成为更牛逼的架构师,日常分享 Go 语言、架构、软件工具的使用。 159篇原创内容 公众号 在单机程序中,当多个线程或协程同时修改全局变量时,为了保障数据一致性,我们 ......
go变量
语法 var name type=expression 省略 类型和表达式可以省略一个,但是不能都省略。产生了与java不一样的场景:一次声明多个不同类型的变量: var b,f,s=true,2,3,"four" 零值 和java不太一样,似乎不只是成员变量才有0值 短变量 语法 name:=ex ......