当前位置: 首页 > news >正文

GO入门之值传递于引用(指针、内存地址)传递扫盲

GO入门之值传递于引用(指针、内存地址)传递扫盲

Go 语言中,值传递引用(指针)传递是两个关键的概念。通过案例可以很好地展示两者的区别。

值传递与引用传递的区别:

  • 值传递:传递的是变量的副本,对副本的修改不会影响原变量。
  • 引用传递(指针传递):传递的是变量的地址,通过指针修改变量会直接影响原变量。

案例:值传递 vs 引用(指针)传递

go复制代码package mainimport "fmt"// 值传递:函数接收的是一个值的副本
func modifyByValue(x int) {x = 100 // 修改的是副本,不会影响原变量
}// 引用传递(指针传递):函数接收的是一个指针
func modifyByReference(x *int) {*x = 100 // 通过指针修改原始变量的值
}func main() {// 定义一个变量num := 10fmt.Println("初始值:", num)// 值传递modifyByValue(num)fmt.Println("值传递后的值:", num) // 仍然是 10,值传递不改变原值// 引用传递(指针传递)modifyByReference(&num)fmt.Println("引用传递(指针传递)后的值:", num) // 变为 100,指针传递改变了原值
}

运行结果:

初始值: 10
值传递后的值: 10
引用传递(指针传递)后的值: 100

解析:

  1. 值传递
    • modifyByValue(num):传递的是 num 的副本(拷贝),所以函数内部的修改不会影响原来的变量 num
    • num 的值依然是 10
  2. 引用传递(指针传递)
    • modifyByReference(&num):传递的是 num 的内存地址,通过指针 *x 来修改 num 的值。
    • 由于修改的是变量的实际地址,因此 num 的值被改为了 100

总结:

  • 值传递:只是在函数内部修改变量的副本,不会影响外部的变量。
  • 引用(指针)传递:通过传递变量的地址,可以在函数内部直接修改外部变量的值。

相关文章:

GO入门之值传递于引用(指针、内存地址)传递扫盲

GO入门之值传递于引用(指针、内存地址)传递扫盲 Go 语言中,值传递和引用(指针)传递是两个关键的概念。通过案例可以很好地展示两者的区别。 值传递与引用传递的区别: 值传递:传递的是变量的副…...

【渗透测试】-vulnhub源码框架漏洞-Os-hackNos-1

vulnhub源码框架漏洞中的CVE-2018-7600-Drupal 7.57 文章目录  前言 1.靶场搭建: 2.信息搜集: 主机探测: 端口扫描: 目录扫描: 3.分析: 4.步骤: 1.下载CVE-2018-7600的exp 2.执行exp: 3.写入木…...

sqli-lab靶场学习(三)——Less8-10(盲注、时间盲注)

Less8 第八关依然是先看一般状态 http://localhost/sqli-labs/Less-8/?id1 然后用单引号闭合: http://localhost/sqli-labs/Less-8/?id1 这关的问题在于报错是不显示,那没办法通过上篇文章的updatexml大法处理。对于这种情况,需要用“盲…...

Pybullet 安装过程

Pybullet 安装过程(windows) 1. 安装C编译工具2. 安装Pybullet 1. 安装C编译工具 pybullet 需要C编译套件,直接装之前检查下,要不会报缺少某版本MVSC的error,最好的方式是直接下载visual studio,直接按默认…...

Error when custom data is added to Azure OpenAI Service Deployment

题意:在向 Azure OpenAI 服务部署添加自定义数据时出现错误。 问题背景: I receive the following error when adding my custom data which is a .txt file (it doesnt matter whether I add it via Azure Cognitive Search, Azure Blob Storage, or F…...

libreoffice word转pdf

一、准备一个word文件 运行: cd /root libreoffice --headless --convert-to pdf --outdir /root/output doc1.docx 发现中文乱码: 此时我们需要给linux 上添加中文字体: centos7 添加中文字体 再次运行正常: libreoffice --h…...

java -----泛型

泛型的理解和好处 泛型是在JDK5之后引入的一个新特性&#xff0c;可以在编译阶段约束操作的数据类型&#xff0c;并进行检查。 泛型的格式为 <数据类型> import java.util.ArrayList;SuppressWarnings({"all"}) public class Generic02 {public static void…...

Springboot 文件上传下载相关问题

文章目录 关于Springboot 文件上传下载问题解决方案注意事项文件上传文件下载文件删除文件在线打开在写练习的时候&#xff0c;发现了一些小小的问题&#xff0c;已经在 上述代码中体现。① 代码路径碰到中文的时候&#xff0c;会有乱码&#xff0c;需要转换&#xff08;内容中…...

【Kotlin 与 Java 互操作】Java中调用带有默认值的Kotlin函数(十四)

导读大纲 1.0.1 Java 没有默认参数值的概念1.0.2 使用 JvmOverloads 来简化调用 1.0.1 Java 没有默认参数值的概念 因此当从 Java 调用带有默认参数值的 Kotlin 函数时 1. 必须明确指定所有参数值 fun <T> joinToString(collection: Collection<T>,separator: St…...

点赞系统实现

点赞功能是社交、电商等几乎所有的互联网项目中都广泛使用。虽然看起来简单&#xff0c;不过蕴含的技术方案和手段还是比较多的。 下面将分享之前做的判题OJ系统的点赞系统的思路。 1.需求分析 点赞功能与其它功能不同&#xff0c;没有复杂的原型和需求&#xff0c;仅仅是一…...

c++进阶学习-----继承

1.继承的概念及定义 1.1继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段&#xff0c;它允许程序员在保持原有类特性的基础上进行扩展&#xff0c;增加功能&#xff0c;这样产生新的类&#xff0c;称派生类。 继承呈现了面向对象 程序设计的…...

C++学习笔记(37)

302、makefile 在实际开发中&#xff0c;项目的源代码文件比较多&#xff0c;按类型、功能、模块分别存放在不同的目录和文件中&#xff0c;哪 些文件需要先编译&#xff0c;那些文件后编译&#xff0c;那些文件需要重新编译&#xff0c;还有更多更复杂的操作。 make 是一个强大…...

Redis发布和订阅

Redis 发布订阅 (pub/sub) 是一种消息通信模式&#xff1a;发送者 (pub) 发送消息&#xff0c;订阅者(sub) 接收消息 可以实现进程间的消息传递。这种模式非常适用于实时消息传递、事件通知和消息分发等场景 Redis可以实现消息中间件MQ的功能&#xff0c;通过发布订阅实现消息…...

计算机毕设设计推荐-基于python+Djanog大数据的电影数据可视化分析

精彩专栏推荐订阅&#xff1a;在下方主页&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f496;&#x1f525;作者主页&#xff1a;计算机毕设木哥&#x1f525; &#x1f496; 文章目录 一、电影数据可视…...

dhtmlxGantt 甘特图 一行展示多条任务类型

效果如图: 后台拿到数据 处理之后如图: 含义: 如上图所示, 如果一行需要展示多个 需要给父数据的那条添加render:split属性, 子数据的parent为父数据的Id即可 切记 父数据的id 别为0 为0 时 会出现错乱 因为有些小伙伴提出分段展示的数据结构还是有点问题,下面展示一个完整…...

COLORmap

在这段MATLAB代码中&#xff0c;surf(peaks)、map的定义以及colormap(map)的调用共同完成了以下任务&#xff1a; 1. **绘制曲面图**&#xff1a; - surf(peaks)&#xff1a;这个函数调用了MATLAB内置的peaks函数来生成数据&#xff0c;并使用surf函数将这些数据绘制成一个…...

手机在网状态查询接口如何用Java进行调用?

一、什么是手机在网状态查询接口&#xff1f; 手机在网状态查询接口&#xff0c;又叫运营商在网状态查询&#xff0c;手机号在网状态查询&#xff0c;传入手机号码&#xff0c;查询该手机号的在网状态&#xff0c;返回内容有正常使用、停机、在网但不可用、不在网&#xff08;…...

mysql性能优化- 数据库配置优化

MySQL 性能优化 - 数据库配置优化 MySQL 是一个广泛使用的关系型数据库管理系统&#xff0c;但随着数据量的增长和访问频率的提高&#xff0c;其性能可能会成为瓶颈。为了保持高效的性能&#xff0c;除了应用层的查询优化和索引优化之外&#xff0c;数据库配置优化 也是非常重…...

(算法)大数的进制转换

题目描述 将一个长度最多为30位数字的十进制非负整数转换为二进制数输出输入描述: 多组数据&#xff0c;每行为一个长度不超过30位的十进制非负整数。 &#xff08;注意是10进制数字的个数可能有30个&#xff0c;而非30bits的整数&#xff09;解析 例子 &#xff1a;123&…...

演示jvm锁存在的问题

文章目录 1、AlbumInfoApiController --》testLock()2、redis添加键值对3、AlbumInfoServiceImpl --》testLock() 没有加锁4、使用ab工具测试4.1、安装 ab 工具4.2、查看 redis 中的值 5、添加本地锁 synchronized6、集群情况下问题演示 jvm锁&#xff1a;synchronized lock 只…...

SEO_网站SEO优化完整教程:从入门到精通

SEO优化入门&#xff1a;从零基础到实战操作 随着互联网的迅猛发展&#xff0c;网站SEO优化成为了网站推广的重要手段。SEO&#xff0c;即搜索引擎优化&#xff0c;是通过优化网站的各项因素&#xff0c;使其在搜索引擎中获得更好的排名&#xff0c;从而吸引更多的流量。如何从…...

从晶体管到ALU:计算机运算基础全解析

1. 从晶体管到二进制&#xff1a;计算机运算的物理基础现代计算机的核心运算能力源于晶体管这一基础电子元件的巧妙运用。晶体管本质上是一个由半导体材料制成的三端器件&#xff0c;通过控制其中一个电极&#xff08;基极或栅极&#xff09;的电压&#xff0c;可以精确控制另外…...

UE4动画师救星:用Control Rig快速修复动捕数据的5个实战技巧与避坑指南

UE4动画师救星&#xff1a;用Control Rig快速修复动捕数据的5个实战技巧与避坑指南 在动作捕捉技术日益普及的今天&#xff0c;动画师们常常面临一个尴尬的现实&#xff1a;昂贵的动捕设备能捕捉到演员生动的表演&#xff0c;但原始数据往往充斥着各种瑕疵——手部穿模、脚步滑…...

全网炸了!5亿人用的Axios竟被投毒,你的密钥还保得住吗?

早些时候&#xff0c;聊过 Python 领域那场惊心动魄的供应链攻击。当时我就感叹&#xff0c;虽然我们 JavaScript 开发者对这类套路烂熟于心&#xff0c;但亲眼目睹这种规模的“投毒”还是头一次。然而&#xff0c;属于我们 JS 圈的至暗时刻&#xff0c;终究还是卷土重来了。而…...

I2C总线原理与嵌入式系统应用实践

1. I2C总线基础解析I2C&#xff08;Inter-Integrated Circuit&#xff09;总线是Philips半导体&#xff08;现NXP&#xff09;在1982年推出的双线制串行通信协议。作为一名电子工程师&#xff0c;我在多个嵌入式项目中都深度使用过这种总线。它的精妙之处在于仅用两根线&#x…...

2025届必备的六大降重复率平台横评

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在内容创作范畴当中&#xff0c;要是打算削减 AIGC 特性&#xff0c;那就得从语言风格、逻辑…...

嵌入式LCD菜单框架:基于FSM的轻量级状态管理方案

1. WSEMenu 库概述WSEMenu 是一个面向嵌入式 LCD 人机交互场景的轻量级状态管理与菜单框架&#xff0c;专为字符型液晶显示屏&#xff08;典型规格&#xff1a;204 字符&#xff09;设计。其核心目标并非提供图形渲染能力&#xff0c;而是解决嵌入式系统中普遍存在的“状态跳转…...

国产DSP

1. 知识关联图&#xff08;Mermaid&#xff09;1.1 中断层级图graph LR A[Input Event<br>(SRIO/DMA/定时器等)] --> B[CIC中断分发控制器] B --> C[核内INTC中断控制器] C --> D[CorePac DSP核心] style B fill:#f0f0ff,stroke:#333 note right of B: &#x1…...

**发散创新:基于Python的本体推理与知识表示实战解析**在人工智能和语义网技术飞速发展的今天,**知识表

发散创新&#xff1a;基于Python的本体推理与知识表示实战解析 在人工智能和语义网技术飞速发展的今天&#xff0c;知识表示&#xff08;Knowledge Representation&#xff09; 已成为构建智能系统的底层核心能力之一。它不仅决定了系统对现实世界的理解深度&#xff0c;还直接…...

02_Elasticsearch知识体系之Mapping映射设计与索引建模实战

02_Elasticsearch知识体系之Mapping映射设计与索引建模实战 Elasticsearch知识体系 基础概念层数据存储层【本文】查询语言层搜索能力层数据处理层集群架构层开发集成层AI增强层行业应用层 关键词&#xff1a; Elasticsearch、Mapping、动态映射、显式映射、字段类型、分片、副…...