iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > GO >go实现for range迭代时修改值的操作
  • 920
分享到

go实现for range迭代时修改值的操作

GORANGEfor 2022-06-07 20:06:36 920人浏览 薄情痞子
摘要

for range的val不能直接修改 因为地址不同 package main import "fmt" func main() { x := make([]int, 3

for range的val不能直接修改

因为地址不同


package main 
import "fmt" 
func main() {
x := make([]int, 3) 
x[0], x[1], x[2] = 1, 2, 3 
for i, val := range x {
fmt.Println(&x[i], "vs.", &val)
}
} 
//输出
0x416020 vs. 0x41602c
0x416024 vs. 0x41602c
0x416028 vs. 0x41602c

补充:GO语言使用range遍历数组,值不被改变(避开range坑)

首先Go语言遍历数组两种方式 一种是

for i:=0;i<len;i++{}

这种方式,就是如果在循环中更改数组的值,则会更改到原数组的值。没有进行数组值的复制

第二种方式

也是主要介绍的就是range遍历数组


for _,num :=range arr{}

这种方式遍历数组,会将遍历的数组的每一个元素进行复制,通过使用复制的值,进行for循环的内容,在for循环中进行更改值,不会影响原数组的值

举例说明:


func (student Student) rename() {
student.name = "xiang"
}
func main() {
var a []int
a = []int{1, 2, 3, 4, 5, 6, 7, 8}
for i := 0; i < len(a); i++ {
a[i] = 0
}
fmt.Println(a)
}

此时用的是for i:=0;i<len;i++循环方式,,根据输出,可以判断,修改的是原数组。

使用Range遍历数组


func main() {
var a []int
a = []int{1, 2, 3, 4, 5, 6, 7, 8}
for _, num := range a {
num = 0
fmt.Print(num, " ")
}
fmt.Println(a)
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。如有错误或未考虑完全的地方,望不吝赐教。


您可能感兴趣的文档:

--结束END--

本文标题: go实现for range迭代时修改值的操作

本文链接: https://www.lsjlt.com/news/30687.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • go 字符串修改的操作代码
    字符串和切片(string and slice) string底层就是一个byte的数组,因此,也可以进行切片操作。 package main import ("fmt") func...
    99+
    2024-04-02
  • Golang反射修改变量值的操作代码
    目录1. 前言2. 判断是否可修改2.1 该值是可寻址的2.2 该值是可导出的3. 修改slice4. 修改array5. 修改结构体6. 修改map1. 前言 前面的随笔Golan...
    99+
    2022-12-08
    Golang反射修改变量值 Golang反射
  • 使用Golang实现高效的Map修改操作技巧
    使用Golang实现高效的Map修改操作技巧 在Golang中,map是一种非常常用的数据结构,用于存储键值对的集合。在处理大规模数据时,对map的修改操作可能会成为性能瓶颈。因此,本...
    99+
    2024-03-02
    golang map 修改 键值对
  • go语言实现Elasticsearches批量修改查询及发送MQ操作示例
    目录update_by_query批量修改索引添加字段查询es发送MQupdate_by_query批量修改 POST post-v1_1-2021.02,post-v1_...
    99+
    2024-04-02
  • golang如何实现文件的读取和修改操作
    这篇文章主要讲解了“golang如何实现文件的读取和修改操作”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“golang如何实现文件的读取和修改操作”吧!一、文件的读取在Go语言中,文件的读取...
    99+
    2023-07-05
  • golang怎么实现文件的读取和修改操作
    Go语言是应用广泛的编程语言之一,它具有简洁高效、静态类型、内存安全等优点,在系统编程、Web开发、数据处理等领域都得到了广泛应用。本文将探讨如何使用Go语言实现文件的读取和修改操作。一、文件的读取在Go语言中,文件的读取操作通常需要使用到...
    99+
    2023-05-14
  • Mysql数据库值的添加、修改、删除及清空操作实例
    3、MySQL数据管理 第一种方式:不太建议,看起来复杂些 -- 学生表的 gradeid 字段,要去引用 年级表的 gradeid -- 定义外键key -- 给这个外键添加...
    99+
    2024-04-02
  • Go语言如何实现数据库的增删改查操作?
    Go语言是一种高效、简洁且易于学习的编程语言,因其在并发编程和网络编程方面的优势而备受开发者青睐。在实际开发中,数据库操作是不可或缺的一部分,本文将介绍如何使用Go语言实现数据库的增删...
    99+
    2024-04-02
  • Go如何实现HTTP中间人代理的操作示例
    小编给大家分享一下Go如何实现HTTP中间人代理的操作示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!go是什么golang是一种编译语言,可以将代码编译为机器...
    99+
    2023-06-14
  • 如何使用PHP7的迭代器实现更加灵活的数据遍历和操作?
    如何使用PHP7的迭代器实现更加灵活的数据遍历和操作?引言:PHP7引入了一种强大的特性——迭代器(Iterator),它可以使我们在遍历和操作数据时更加灵活和高效。在本文中,我们将介绍如何使用PHP7的迭代器来实现数据的迭代和操作,并提供...
    99+
    2023-10-22
    PHP 迭代器 数据遍历
  • sqlserver的表、视图、索引如何实现创建、修改、删除操作
    小编给大家分享一下sqlserver的表、视图、索引如何实现创建、修改、删除操作,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一...
    99+
    2024-04-02
  • python中怎么实现对xlsx格式的表格读、写、修改操作
    这篇文章主要介绍了python中怎么实现对xlsx格式的表格读、写、修改操作,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Python主要用来做什么Python主要应用于:1...
    99+
    2023-06-14
  • Logback 使用TurboFilter实现日志级别等内容的动态修改操作
    目录Logback TurboFilter实现日志级别等内容的动态修改为什么要通过TurboFilter去动态的修改日志级别logback动态设置某个类的日志级别假设一下,现在有这么...
    99+
    2024-04-02
  • JavaScript中如何基于Dom操作实现查找、修改HTML元素的内容
    小编给大家分享一下JavaScript中如何基于Dom操作实现查找、修改HTML元素的内容,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作