你如何增加从 llength 返回的数字?
How do you increment the number returned from llength?
捕获目录中的文件数
# For this example, suppose llength returned 4.
set number_of_images [llength [glob -nocomplain -directory $destination_folder -type f *]]
我想使用该数字并根据另一个目录中的文件数量在 foreach
循环中增加它。
foreach file [glob -nocomplain -directory $source_folder -type f *] {
puts [incr $number_of_images]
# I want to start the count at 5, and increment by 1 with each loop. incr fails to
# do so, as well as mathfunc::int.
}
根据文档,我的问题是 llength
returns 一个字符串:
Treats list as a list and returns a decimal string giving the number
of elements in it.
我可以将其转换为 int
并使用吗?
在Tcl 中,一切都是字符串。是的,您可以递增一个包含整数(表示为十进制字符串)的变量。
问题出在您对 incr
的使用上。 incr
命令用于递增一个 变量 保存一个整数,而不是一个整数 value。只需更改您的代码:
puts [incr $number_of_images]
...到...
puts [incr number_of_images]
# For this example, suppose llength returned 4.
set number_of_images [llength [glob -nocomplain -directory $destination_folder -type f *]]
我想使用该数字并根据另一个目录中的文件数量在 foreach
循环中增加它。
foreach file [glob -nocomplain -directory $source_folder -type f *] {
puts [incr $number_of_images]
# I want to start the count at 5, and increment by 1 with each loop. incr fails to
# do so, as well as mathfunc::int.
}
根据文档,我的问题是 llength
returns 一个字符串:
Treats list as a list and returns a decimal string giving the number of elements in it.
我可以将其转换为 int
并使用吗?
在Tcl 中,一切都是字符串。是的,您可以递增一个包含整数(表示为十进制字符串)的变量。
问题出在您对 incr
的使用上。 incr
命令用于递增一个 变量 保存一个整数,而不是一个整数 value。只需更改您的代码:
puts [incr $number_of_images]
...到...
puts [incr number_of_images]