首页 > 其他分享 >学迭代器遇到的一个问题

学迭代器遇到的一个问题

时间:2023-07-04 21:23:22浏览次数:28  
标签:index arr end 迭代 遇到 iter 问题 print

事情是这样的

 function  iter (arr,index)
     index = index + 1 
     if arr[index] then 
         
         return arr[index],index end
 end
 
 a={1,2,3,5,4}
 
 for k,v in iter,{1,2,5,6,5,4},0 do
     print(k)
 end
         

运行结果:寄

将手打的table改成a得到的结果

1
2
3
5

—————————————第一个问题:直接传表是否可行?——————————————

通过实践

function a (b)
    for i = 1 ,#b do
        print(b[i])
    end
end


arr={1,2,3,4,5,6}

a(arr)
a({1,2,3,4,5,6})    

两次调用函数都能得到正确的结果

并不是传参数用的形式的问题

 

————————————第二个问题:表的数据问题,还是迭代器的问题?———————————

for k,v in iter,{1,2,3,5,4} ,0 do 
    print(k) 
end



for k,v in iter,{1,2,5,6,5,4},0 do
    print(k)
end

分别用两组数据

第一个可以正常运行,而第二个不行

我们测试更多的数据,并存在变量 a 上

a={1,2,3,4,5,6}     --正常

a={0,1,2,3,4,5,6}   --寄

更离谱的是

a={1,2,3,5,5,6} 的结果为 

1
2
3
5
6

数据没有改变问题出在迭代器身上

注意到这样一行代码

  then return arr[index],index

最终得出结论,问题在迭代器上

function  iter (arr,index)

return返回的两个值,第一个返回值用作下一次迭代时的第二个参数,并且这两个返回值分别赋值给k,v,第一个返回值用了两次
把print后的k改成v,并且两个返回值互换位置

一个无状态迭代器就完成了
 
 

标签:index,arr,end,迭代,遇到,iter,问题,print
From: https://www.cnblogs.com/omori-Sakuya/p/17527054.html

相关文章

  • 微软确认了 Windows 11 存在 CPU 占用异常的问题
    导读微软近日确认了Windows11系统中所存在的一个错误,该问题影响了运行Windows1121H2和22H2版本的设备,换句话说就是所有发布的Windows11操作系统。该问题是在用户安装了KB5026372(2023年5月补丁)后产生的,该问题破坏了文件资源管理器的一个特定部分,导致CPU......
  • 数据库问题之“字符编码问题 Cause: java.sql.SQLException: Incorrect string value:
     1)表1和表2的产品名称[数据库字段]字符编译方式不一致①问题 org.springframework.jdbc.UncategorizedSQLException:Errorupdatingdatabase.Cause:java.sql.SQLException:Incorrectstringvalue:'\xF0\x9F\x8E\x81\xE7\x88...'forcolumn'product_name'atr......
  • 【Maven】Unknown lifecycle phase “.test.skip=true“.问题解决
    我们在运行跳过单元测试时的命令mvnpackage-Dmaven.test.skip=true时,出现Unknownlifecyclephase".test.skip=true".如下[ERROR]Unknownlifecyclephase".test.skip=true".Youmustspecifyavalidlifecyclephaseoragoalintheformat<plugin-prefix>......
  • MacBook的mysql无法连接pycharm问题
    问题1:1018-Can'treaddirof'./luffy/'(errno:13-Permissiondenied)这个错误提示表明在Django应用程序中无法读取目录"./luffy/",MySQL数据库连接配置不正确或没有足够的权限访问数据库引起的。而我的连接配置是正确的,所以问题是没有足够的权限1.打开终端,用root用户进......
  • 校验 GPT-4 真实性的三个经典问题:快速区分 GPT-3.5 与 GPT-4
    现在已经有很多ChatGPT的套壳网站,以下分享验明GPT-4真身的三个经典问题,帮助你快速区分套壳网站背后到底用的是GPT-3.5还是GPT-4。大家可以在这个网站测试:https://ai.hxkj.vip,免登录可以问三条,登录之后无限制。咱们使用免登录的额度测试就已经够用了测试问题1:Whatist......
  • Springboot : 连接ldap超时问题
    Err:java.net.ConnectException:Connectiontimedoutwhenconnectingtoldap使用springbootldap连接账号所属ldap目录验证时,出现如上报错经检查,host,username,password等信息均无误,如下为代码中的配置信息示例hashEnv.put(Context.SECURITY_AUTHENTICATION,"simple"......
  • HEAD detached from XXXX解决方法 HEAD detached at origin/master 问题的解决
    如果是因为在这个分支下操作,出现了了问题的,请尝试以下办法remotes/origin/HEAD->origin/master1.gitpushoriginmaster后出现Everythingup-to-date当时以为问题自己点错了,又重新提交了一次,在gitcommit之后出现HEADdetachedfrom4d1722c错误立即用gitstatus查看,也......
  • scrollIntoView返回顶部失效问题
    背景:在vue项目中进入页面使用了scrollIntoView方法让页面滚动回顶部,同样的详情页面发现有的可以返回顶部,但是有的失效。代码如下:import{onBeforeRouteUpdate}from"vue-router";onBeforeRouteUpdate((to,from)=>{setTimeout(()=>{document.getElementById......
  • 解决yum update异常中断产生重复包、依赖冲突等问题
    前言事情的起因是执行了yumupdate后,嫌时间长,就手欠儿按了curl+c中断了更新,结果就导致了后面一些列问题问题问题一:Thereareunfinishedtransactionsremaining使用yum相关命令时,一直会有未完成事务的提醒,这时候我们需要完成这个事务。解决方法:使用yum-complete-trans......
  • 文章审核存在问题
    一、自媒体微服务——远程调用——>文章微服务倘若有一个微服务报错,另一个微服务不知道,无法保证事务的一致性。作业:使用seata来解决审核过程中的分布式事务的问题二、倘若文章发布是一个未来时间,该如何按照精确时间发布?如1月1号提交,但是设定发布时间是1月5号。 ......