从Tcl中的过程返回数组 [英] Returning arrays from Procedures in TCL

查看:16
本文介绍了从Tcl中的过程返回数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望传递过程中的array并返回array,以下是我尝试过的示例代码。但遇到一些错误..

set a(0) "11"
set a(1) "10"
set a(2) "20"
set a(3) "30"
set a(4) "40"

proc deleten somet {
    upvar $somet myarr
    for { set i 1} { $i < [array size myarr]} { incr i} {
        set arr($i) $myarr($i)
    }
    return arr
}

array set some[array get [deleten a]]
parray some

当我运行这段代码时,我得到以下错误#args:应该是"array set arrayName list"。我很确定我不想使用list,如何将proc返回的数组设置为另一个数组?

推荐答案

您缺少的步骤是返回[array get arr],而不仅仅是arr

以下代码段在此处可用

set a(0) "11"
set a(1) "10"
set a(2) "20"
set a(3) "30"
set a(4) "40"

proc deleten somet {
   upvar $somet myarr
   for { set i 1} { $i < [array size myarr]} { incr i} {
       set arr($i) $myarr($i)
   }
   return [array get arr]
} 

array set some  [deleten a]
parray some

有关详细信息,请参阅How to pass arrays

这篇关于从Tcl中的过程返回数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆