`
ztbsuper
  • 浏览: 23349 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

foreach出来的是神马?

    博客分类:
  • perl
阅读更多
事例1
my %hash=(
  '1-a' => 'a',
  '2-b' => 'b',
  '3-c' => 'c',
  '4-d' => 'd',
  '5-e' => 'e');
  
foreach my $key(keys %hash)
{
  print $key."\n";
  foreach my $dkey(keys %hash)
  {
    delete $hash{$dkey};
  }
}

事例2
my %hash=(
  '1-a' => 'a',
  '2-b' => 'b',
  '3-c' => 'c',
  '4-d' => 'd',
  '5-e' => 'e');
  
foreach my $key(keys %hash)
{
  print $key."\n" if ($hash{$key});
  foreach my $dkey(keys %hash)
  {
    delete $hash{$dkey};
  }
}


发现foreach出来一个hash的key,此key的遍历其实是原hash的key的copy,如果想减少遍历,需要使用事例2的方法,在每次新遍历开始时,测试hash是否有此key的数据
分享到:
评论

相关推荐

    在laravel中怎样使用foreach来遍历数组?视频教程

    在laravel中怎样使用foreach来遍历数组?介绍的是在laravel中怎样使用foreach来遍历数组?

    [] - 2022-06-09 Java8 Lambda 表达式中的 forEach 如何提前终止?.pdf

    互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术...

    [] - 2023-03-27 Java8 Lambda 表达式中的 forEach 如何提前终止?.pdf

    互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术,人工智能互联网资讯,技术简介,IT、AI技术...

    C#并发实战记录之Parallel.ForEach使用

    C#并发实战记录之Parallel.ForEach使用 本篇文章主要介绍了C#并发实战记录之Parallel.ForEach使用的相关知识点。通过示例代码,详细介绍了Parallel.ForEach的使用方法和优化技巧。 一、使用Parallel.ForEach优化...

    c#中Foreach详细用法

    C#中Foreach详细用法 Foreach语句是C#语言中的一种循环语句,它提供了一个简洁高效的方式来遍历数组、集合、列表等数据结构。在本文中,我们将详细介绍Foreach语句的用法和优点,并与传统的for循环语句进行比较。 ...

    c:forEach标签的使用祥解

    在JavaServer Pages (JSP) 开发中,`c:forEach`标签是Java Expression Language (EL) 和 JavaServer Pages Standard Tag Library (JSTL) 的一部分,它提供了一个方便的方式来迭代数组、集合、Map或其他可迭代的数据...

    C-FOREACH用法

    `C-FOREACH`是JavaServer Pages (JSP)中JSTL (JavaServer Pages Standard Tag Library)的一部分,用于在页面上进行循环遍历。它提供了便利的方式来迭代数组、集合、Map或者其他迭代对象中的元素。在JSP开发中,`C-...

    c#Foreach.rar

    在C#编程语言中,`foreach`循环是一个非常重要的控制流结构,用于遍历集合、数组或枚举类型的元素。这个`c#Foreach.rar`压缩包包含了一个名为`foreach.txt`的文本文件,很可能是对`foreach`用法的简要说明。在这里,...

    Mybatis批量foreach merge into的用法

    Mybatis批量foreach merge into的用法 Mybatis批量foreach merge into的用法是通过Mybatis的动态SQL语法foreach循环插入实现的,这种方法可以批量插入时间价格表数据。如果某个套餐的某天的价格存在,则更新,不...

    For 和 Foreach 的效率问题

    在编程语言中,`for`和`foreach`循环是两种常用的迭代工具,它们在处理集合或数组时发挥着重要作用。本文将深入探讨`for`和`foreach`在C#中的效率差异,以及如何根据具体场景选择合适的循环方式。 首先,`for`循环...

    jstl标签 forEach详解

    jstl forEach 标签详解 jstl forEach 标签是 JavaServer Pages Standard Tag Library (JSTL) 中的一个标签,用于循环控制,可以将集合中的成员循序浏览一遍。该标签的运作方式为当条件符合时,就会持续重复执行的...

    for foreach效率测试代码

    `for` 和 `foreach` 循环在C#中被广泛使用,它们各自有特定的用途和效率特点。本篇将深入探讨这两种循环结构,以及它们在执行大量遍历操作时的性能差异。 `for` 循环是一种灵活的循环结构,适用于需要知道循环次数...

    foreach的使用

    在C++编程中,`foreach`关键字常用于遍历容器中的元素,它是STL(标准模板库)的一部分,提供了一种简洁的迭代器语法来访问序列容器(如vector、list、deque等)或关联容器(如set、map等)中的元素。在VC6.0环境下...

    c:foreach的各种用法

    ### c:foreach 的各种用法详解 在JSP(JavaServer Pages)开发中,`<c:forEach>` 是一个非常重要的标签,它属于JSTL(JavaServer Pages Standard Tag Library)的一部分,主要用于循环处理集合、数组等数据结构。相...

    foreach.js低版本IE数组和HTMLCollection元素集合不兼容forEach循环遍历的处理方法

    低版本IE数组和HTMLCollection元素集合不兼容forEach循环遍历的处理方法 原生JavaScript通过name获取dom元素得到的是 HTMLCollection元素集合 要想循环遍历可以用forEach,但是在低于ie9的版本下不兼容 var list...

    C#foreach用法案例,使用VS2019编写

    这段代码筛选出`numbers`列表中的偶数并打印出来。 ### 6. 结合异步操作 在VS2019中,你可以使用`async/await`关键字和`foreach`处理异步任务,例如从网络获取数据: ```csharp async Task LoadDataFromApiAsync...

    尽量避免使用foreach2

    避免使用 foreach 避免 GC Alloc 导致的 Unity 游戏卡帧问题 作为 Unity 游戏开发者,我们经常会遇到游戏卡帧的问题,而 GC Alloc 正是造成 Unity 游戏偶尔卡帧的罪魁祸首。那么,为什么 GC Alloc 会导致游戏卡帧呢...

    对Foreach语句测试

    对对Foreach语句测试

    使用foreach循环

    "使用foreach循环" foreach 循环是 Java 语言中的一种特殊循环结构,从 JDK 1.5 之后引入,用于遍历数组和集合元素。它的出现简化了遍历数组和集合元素的过程,使代码更加简洁易读。 使用 foreach 循环遍历数组和...

    Parallel.ForEach的卡死现象(线程操作问题C#源码实例)

    在.NET编程环境中,`Parallel.ForEach`是一个非常有用的并行处理工具,它允许开发者将数据集中的每个元素在多个线程上并行处理,以提高应用程序的执行效率。然而,正如标题所指出的,`Parallel.ForEach`可能会遇到...

Global site tag (gtag.js) - Google Analytics