如何解决从tcl中的数组取消设置元素
我正在TCL中创建一个数组,为此,输入应为一系列数字。 第一个 数组中的两个元素应该携带删除数组中存在的元素的信息。第一个元素必须带有该元素的索引 占据删除应以其开头的数组和第二个元素 携带元素的索引,该元素占用要删除的数组 进度。
我是TCL的新手,尝试了以下代码,但遇到错误,无法读取数组(此处为numarray)。欢迎修复它。
#! /user/bin/tclsh
puts "Enter sequence count: ";
gets stdin count;
puts "\nEnter the numbers: ";
for {set i 0} {$i < $count} {incr i} {
gets stdin numarray($i);
}
set delstart $numarray(0);
puts "Starting index: " $numarray(0);
set delend $numarray(1);
for {set $i $delstart} {$i < $delend} {incr $i} {
unset numarray($i);
}
puts "\nNumber array after deletion :";
foreach $i [array names numarray] {
puts "$numarray($i)";
}
解决方法
由于一个基本问题,您在整个代码中遇到了多个问题。
通常来说,当您想要变量的值时,请在前面使用$
。
在写入变量时,请使用变量名称。
我将使用您代码中的一行作为示例:
for {set $i $delstart} {$i < $delend} {incr $i} {
实际上,该命令将解释为:
for {set 12 $delstart} {$i < $delend} {incr 12} {
12
是有效的变量名,但不是您使用的变量名。
应该是:
for {set i $delstart} {$i < $delend} {incr i} {
只有测试$i < $delend
需要该值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。