2

如何做与此等效的事情:

In: A = [ 1 2 3 ]
In: B = 2 * A
In: B
Out: [ 2 4 6 ]

这个方法得到了一部分的方式:

In: do for [i in "1 2 3"] { print 2*i }
Out:
2
4
6

但我想返回另一个可用于进一步操作的列表/数组。

4

1 回答 1

1

正如您已经发现的那样,使用空格分隔的单词是模拟数组的唯一方法。因此,您必须再次将输出格式化为字符串,其中单个条目由空格分隔:

out = ''
do for [i in "1 2 3"] { 
    out = out . sprintf('%d ', 2*i)
}

print sprintf('%d entries: %s', words(out), out)

这打印

3 个条目:2 4 6

如果使用浮点数,则必须使用例如 '%f' 来格式化输出:

out = ''
do for [i in "1.1 2.2 3.3"] { 
    out = out . sprintf('%f ', 2*i)
}

print sprintf('%d entries: %s', words(out), out)

words计算字符串中的单词,您可以使用word它从字符串中提取某个单词(从 开始1):

print word(out, 2)

4

于 2013-10-04T08:19:22.463 回答