通过以下程序,我得到了一个大列表print~
。
我想从此列表中获取第二个值。
如何获得第二个值并用 print 而不是打印它print~
?
[print~]
将始终打印整个信号块(在您的情况下为 128 个值)。
要获取特定样本,您可以改用表格,将监控信号输入其中,然后检索您感兴趣的值:
...
|
[tabsend~ $0-foo]
[table $0-foo 128]
[2(
|
[tabread $0-foo]
|
[print]
注意:与 with 不同[print~]
,它只会在下一个信号块生成输出,这将立即输出数据(即:它将从最后一个信号块获取信号数据)。要获得下一个信号块,您可以将建议解决方案的下部替换为以下内容:
[bang~] [2(
| |
| [r $0-next] |
| | |
[spigot] [t b f]
| | |
[t f b] [1( |
| | | |
| [0( [s $0-next] |
| | |
| [s $0-next] |
| |
[float ]
|
[tabread $0-foo]
|
...
(补丁用于[s/r $0-next]
避免 ascii 图形中的交叉连接线;在实践中,您可能希望使用直接连接)最好将整个事物封装到抽象中。