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

使用for循环对 golang 中结构体数组取值进行修改时,需要注意的问题

为什么80%的码农都做不了架构师?>>>   hot3.png

废话少说,直接上代码:

	type a1 struct {
		key1 string
		key2 string
		key3 string
	}
	testData := []a1{
		a1{"1","2", "3"},
		a1{"4","5", "6"},
	}

上面的代码定义了一个结构体,声明了一个数组。

采用循环变量可以修改数组中结构体的取值:

	for i := 0; i < len(testData); i++ {
		testData[i].key3 = "999"
	}
	fmt.Printf("%v", testData)

输出:[{1 2 999} {4 5 999}]

采用 range 获取的下标值,然后用下标方式引用的数组项也可以直接修改:

	for idx, _ := range testData {
		testData[idx].key3 = "999"
	}
	fmt.Printf("%v", testData)

输出:[{1 2 999} {4 5 999}]

采用 range 获取数组项不能修改数组中结构体的值:

	for _, item := range testData {
		item.key3 = "999"
	}
	fmt.Printf("%v", testData)

输出:[{1 2 3} {4 5 6}]

转载于:https://my.oschina.net/xuleo/blog/1624683

相关文章:

  • C#基础 [07] 方法[上]
  • Window7下SourceInsight加载需要字体方法
  • 阿里云高性能AI服务 -- 基于Docker和EGS一键创建高性能Tensorflow分布式训练
  • CBitMap的用法 from http://www.cnblogs.com/toconnection/archive/2012/08/04/mfc.html
  • ES6指北【2】—— 箭头函数
  • MyBatis + winform 配置
  • VS2015 中统计整个项目的代码行数
  • EI收录中国大陆期刊名录(2012年)
  • 2018/02/28
  • 路由反射器(Route Reflector)简介
  • 最优化原理,凸优化
  • Windows7+vs2008进行wince开发的环境配置
  • 太难、太贵、太耗时......这些都是你对CRM工具的误解!
  • 百度搜索结果的URL参数关键词(wd|word|kw|keyword)
  • delay的几个函数说明
  • 【Amaple教程】5. 插件
  • Codepen 每日精选(2018-3-25)
  • golang 发送GET和POST示例
  • Golang-长连接-状态推送
  • HashMap剖析之内部结构
  • iOS编译提示和导航提示
  • JavaScript服务器推送技术之 WebSocket
  • JavaScript实现分页效果
  • KMP算法及优化
  • pdf文件如何在线转换为jpg图片
  • Python 基础起步 (十) 什么叫函数?
  • 不上全站https的网站你们就等着被恶心死吧
  • 简单基于spring的redis配置(单机和集群模式)
  • 面试遇到的一些题
  • 配置 PM2 实现代码自动发布
  • 小程序 setData 学问多
  • ​linux启动进程的方式
  • #前后端分离# 头条发布系统
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (function(){})()的分步解析
  • (二)pulsar安装在独立的docker中,python测试
  • (附源码)计算机毕业设计ssm-Java网名推荐系统
  • (免费领源码)python+django+mysql线上兼职平台系统83320-计算机毕业设计项目选题推荐
  • (三分钟)速览传统边缘检测算子
  • (四)JPA - JQPL 实现增删改查
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • *++p:p先自+,然后*p,最终为3 ++*p:先*p,即arr[0]=1,然后再++,最终为2 *p++:值为arr[0],即1,该语句执行完毕后,p指向arr[1]
  • .bat批处理(一):@echo off
  • .net core使用ef 6
  • .Net6 Api Swagger配置
  • .Net面试题4
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • ?
  • @Import注解详解
  • @Query中countQuery的介绍
  • @TableLogic注解说明,以及对增删改查的影响
  • [ vulhub漏洞复现篇 ] JBOSS AS 4.x以下反序列化远程代码执行漏洞CVE-2017-7504
  • [BROADCASTING]tensor的扩散机制
  • [C语言]——C语言常见概念(1)
  • [error] 17755#0: *58522 readv() failed (104: Connection reset by peer) while reading upstream