我已经阅读了一些示例代码,但我只是不明白如何使用类似 foreach 的循环来迭代文件集合。以下是我获取文件列表的方法:
ls=:0 dir '*.*'
我可以回应这个并且它工作得很好。但我需要做的是使用某种循环一次处理每个文件 1。所以类似:
ls=:0 dir '*.*'
foreach (file in ls) {
do something(file)
do something else.. so on
}
在手册中,每个循环如下所示:
smoutput each i.10
显然这没有用,它打印 1 到 10,我不知道如何修改它以与我的目录列表一起使用。
最佳答案
each
关键字用于单行循环。有一个for
loop ,您可以在定义的函数(或动词)中使用它。
示例:
myFunction =: 3 : 0
ls =. 1 dir '*.*'
for_file. ls do.
doSomething ;file
doSomethingElse ;file
end.
)
for_.
变体可以说是最有用的。变量 file
的名称位于下划线和句点之间。要记住的重要一点是,for 循环将给出数组中出现的每个项目,因此如果 ls 是装箱字符串数组,则每个文件都会显示作为单个盒装字符串。
关于j - 使用 for 每个循环列出目录中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14432661/