go for 循环变量的使用及易错点
1,for 循环变量,整个for循环中变量i始终使用一个变量,i地址不变,存放的内容在变
func main() {for i := 0; i < 10; i++ {fmt.Printf("值:%v 地址:%v \n", i, &i)}
}
打印:
值:0 地址:0xc00001e068
值:1 地址:0xc00001e068
值:2 地址:0xc00001e068
值:3 地址:0xc00001e068
值:4 地址:0xc00001e068
值:5 地址:0xc00001e068
值:6 地址:0xc00001e068
值:7 地址:0xc00001e068
值:8 地址:0xc00001e068
值:9 地址:0xc00001e068
若是使用变量地址,注意变量的内容一直在变化。如下例子,&i最后指向内容3
var test_i [](*int)for i := 0; i < 3; i++ {test_i = append(test_i, &i)}for i := 0; i < 3; i++ {fmt.Println(*test_i[i])}
打印
3
3
3
2,for 循环加goroutine的使用,注意goroutine中使用循环变量,会随着for 循环的循环次数变化而变化。
var wg sync.WaitGroupfor i := 0; i < 3; i++ {wg.Add(1)go func() {defer wg.Done()fmt.Println("goroutine 中使用循环变量:", i) // 打印的是循环结束后的 i 值}()}wg.Wait()
相当于for循环结束才真正运行goroutine。此时i最后的值是3.
gorountine 中使用循环变量: 3
gorountine 中使用循环变量: 3
gorountine 中使用循环变量: 3
想要得到不同变量的使用,可以让循环变量作为参数传递进去
var wg sync.WaitGroupfor i := 0; i < 3; i++ {wg.Add(1)go func(t int) {defer wg.Done()fmt.Println("gorountine 中使用循环变量:", t) // 打印的是循环结束后的 i 值}(i)}wg.Wait()
gorountine 中使用循环变量: 0
gorountine 中使用循环变量: 2
gorountine 中使用循环变量: 1
相关文章:
go for 循环变量的使用及易错点
1,for 循环变量,整个for循环中变量i始终使用一个变量,i地址不变,存放的内容在变 func main() {for i : 0; i < 10; i {fmt.Printf("值:%v 地址:%v \n", i, &i)} } 打印: 值:0 地址&am…...
2024嵌入式面试:OPPO嵌入式面试题及参考答案
目录 TCP 与 UDP 的区别是什么? 请简述 TCP 的三次握手过程。 HTTP 协议的工作原理是什么? C++11 引入了哪些新特性? 什么是智能指针?如何解决其内存泄漏问题? 进程间有哪些通信方式? CPU 的调度策略有哪些? 如何保证线程安全?多线程编程需要注意哪些问题? S…...
Cesium模型制作,解决Cesium加载glb/GLTF显示太黑不在中心等问题
Cesium模型制作,解决Cesium加载glb/GLTF显示太黑不在中心等问题 QQ可以联系这里,谢谢...
Java 操作 Redis和redis持久化
一、Jedis 我们要使用 Java 来操作 Redis,Jedis 是 Redis 官方推荐的 java连接开发工具! 使用Java 操作 Redis 中间件! 1.导入对应的依赖 https://mvnrepository.com/artifact/redis.clients/jedis <dependency><groupId>redi…...
Expo创建的React Native项目如何在Windows上进行打包
文章目录 前言eas打包步骤什么是AAB转换为apk文件 本地打包以Windows为例先安装docker,然后手动创建下面的三个文件构建 前言 下面是Expo如何在本地进行打包的过程(windows) eas打包 如果使用云打包,花费时间较多,时…...
探索Go语言中的结构体:定义和使用
引言 Go语言是一种静态类型的编程语言,它提供了多种数据结构来组织数据。结构体(struct)是Go中一种强大的自定义数据类型,允许你将多个不同或相同类型的字段组合成一个单一的实体。本文将介绍Go语言中结构体的基本概念、定义方法…...
Unity Dots学习 (一)
先学习怎么使用,再研究底层代码。Dots大家都有所耳闻。一直没时间研究,最近研究一下 看上图可知,哪怕是CPU的第三级缓存也比内存要快2-5倍。 资料: 《DOTS之路》第零节——前导课(1)——DOTS的5W1H问题_哔哩哔哩_bilibili 《DOT…...
C语言刷题日记(附详解)(1)
一、选择判断部分 第一题: 如下代码是否存在风险,并说明原因和修改方案 #include<stdio.h> int main() {char* str "hello world";*str a;return 0; }思路提示:这种形式的字符串存储在什么区域呢?是否真的有…...
SpringSecurity实现登录功能实战!!!
实现思路 登录 ①自定义登录接口 调用ProviderManager的方法进行认证 如果认证通过生成jwt 把用户信息存入redis中 ②自定义UserDetailsService 在这个实现类中去查询数据库 注意配置passwordEncoder为BCryptPasswordEncoder 退出登录,删除redis中的数…...
mysql中用一个查询获取多个数据库(模式)和表的计数之和
问题 下面的查询返回了4排数据,这很好。但我同时需要对同一个查询中的所有计数求和。这如何实现?我已经尝试了多种不同的方法,但只得到sintax报错。 SELECT COUNT(*) FROM schema1.table WHERE STATE 17 AND LEVEL 1 UNION ALL SELECT CO…...
linux patch 的制作方式
文章目录 制作patch1. 准备工作2. 使用 diff 命令生成补丁文件生成单个文件的补丁生成整个目录的补丁 3. 检查补丁文件 使用patch1. 应用补丁文件1.1 应用单个文件的补丁1.2 应用整个目录的补丁 总结示例:制作和应用补丁 前言: 在Linux系统中,…...
白骑士的C#教学进阶篇 2.4 LINQ查询
系列目录 上一篇:白骑士的C#教学进阶篇 2.3 委托与事件 LINQ(Language Integrated Query)是C#中的一个强大特性,它提供了统一的语法来查询和操作各种数据源,如数组、集合、XML和数据库等。LINQ通过一种类似SQL的查询语…...
2024华为OD机试真题- 贪吃的猴子Python-C卷D卷-200分
目录 题目描述 输入描述 输出描述 用例1 用例2 用例3 解题思路 代码 2024华为OD机试题库-(C卷+D卷)-(JAVA、Python、C++) 题目描述 一只贪吃的猴子,来到一个果园,发现许多串香蕉排成一行,每串香蕉上有若干根香蕉。每串香蕉的根数由数组numbers给出。 猴子获取香蕉,…...
4-1-2 直流电机(电机专项教程)
4-1-2 直流电机(电机专项教程) 4-1-2 直流电机主要参数尺寸参数额定电压额定电流空载转速 如何控制直流电机有刷直流电机转向控制H桥电路控制转向 如何控制电机转速PWM控制电机转速 4-1-2 直流电机 之前学习了有刷直流电机的基本结构个工作原理ÿ…...
[图解]用例规约之扩展路径
1 00:00:01,710 --> 00:00:03,670 基本路径写完之后 2 00:00:04,690 --> 00:00:07,270 接下来就是扩展路径 3 00:00:08,620 --> 00:00:14,000 扩展路径就是系统要处理的意外和分支 4 00:00:14,010 --> 00:00:19,710 系统要处理的 5 00:00:20,970 --> 00:00:…...
学习记录第二十八天
有名管道(FIFO) 在Linux系统中,有名管道是一种特殊类型的文件,它允许不相关的进程之间进行通信。有名管道在文件系统中有一个具体的路径和名称,因此它们可以被多个进程共同访问。有名管道的特点包括持久性、多进程访问…...
SpringBoot的事务/调度/缓存/邮件发送和一些Spring知识点总结
目录 1、SpringBoot的事务管理 2、SpringBoot的异步任务 3、SpringBoot定时任务调度 4、SpringBoot整合Mail发送邮件 5、Spring框架中的Bean的作用域 6、Spring框架中的Bean的线程安全 7、 Spring框架中的Bean生命周期 8、Spring框架如何解决循环依赖? 9、…...
透明加密技术
透明加密技术,也被称为透明数据加密(Transparent Data Encryption, TDE),是一种加密方法,它允许数据在存储时自动加密和解密,而不需要用户进行任何手动操作。透明加密技术主要应用于数据库、文件系统和磁盘…...
深入理解Faiss:高效向量检索的利器
近年来,随着人工智能和机器学习技术的飞速发展,向量检索技术变得越来越重要。无论是在推荐系统、图像搜索还是自然语言处理等领域,向量检索都扮演着至关重要的角色。而在众多向量检索库中,Faiss(Facebook AI Similarit…...
RK3576 芯片介绍
RK3576 芯片介绍 RK3576瑞芯微第二代8nm高性能AIOT平台,它集成了独立的6TOPS(Tera Operations Per Second,每秒万亿次操作)NPU(神经网络处理单元),用于处理人工智能相关的任务。此外࿰…...
(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)
题目:3442. 奇偶频次间的最大差值 I 思路 :哈希,时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况,哈希表这里用数组即可实现。 C版本: class Solution { public:int maxDifference(string s) {int a[26]…...
(转)什么是DockerCompose?它有什么作用?
一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...
多种风格导航菜单 HTML 实现(附源码)
下面我将为您展示 6 种不同风格的导航菜单实现,每种都包含完整 HTML、CSS 和 JavaScript 代码。 1. 简约水平导航栏 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport&qu…...
用docker来安装部署freeswitch记录
今天刚才测试一个callcenter的项目,所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
32单片机——基本定时器
STM32F103有众多的定时器,其中包括2个基本定时器(TIM6和TIM7)、4个通用定时器(TIM2~TIM5)、2个高级控制定时器(TIM1和TIM8),这些定时器彼此完全独立,不共享任何资源 1、定…...
字符串哈希+KMP
P10468 兔子与兔子 #include<bits/stdc.h> using namespace std; typedef unsigned long long ull; const int N 1000010; ull a[N], pw[N]; int n; ull gethash(int l, int r){return a[r] - a[l - 1] * pw[r - l 1]; } signed main(){ios::sync_with_stdio(false), …...
React父子组件通信:Props怎么用?如何从父组件向子组件传递数据?
系列回顾: 在上一篇《React核心概念:State是什么?》中,我们学习了如何使用useState让一个组件拥有自己的内部数据(State),并通过一个计数器案例,实现了组件的自我更新。这很棒&#…...
