如何在SuperCollider命令行REPL中进行多行输入?
如何在SuperCollider命令行REPL中进行多行输入?
嘿,这个问题我刚好熟!在SuperCollider的命令行REPL里,不需要像Haskell的ghci那样用:{和:}来切换模式,有几种更顺手的方式处理多行输入:
利用语法结构自动触发多行模式
当你输入一个未闭合的语法结构(比如左大括号{、左方括号[,或者开头的圆括号()后按回车,REPL会自动进入多行输入状态,直到你输入对应的闭合符号才会执行整个代码块。比如常用的包裹代码块的写法:( SynthDef(\testSynth, { Out.ar(0, SinOsc.ar(440, 0, 0.1)) }).add; )输入开头的
(后回车,你会看到提示符变化,提示你继续输入,直到补全)并回车,整个代码块就会被执行。用反斜杠延续行
如果你想输入多个独立的单行语句但不想拆成多次执行,可以在每一行的末尾加一个反斜杠\(注意反斜杠后面不能有空格),表示这一行未结束,下一行是延续内容:a = 5 \ b = 10 \ c = a + b这样三行代码会被当作一个整体执行。
中断多行输入的小技巧
要是不小心进入了多行模式又不想继续输入,按Ctrl + C就能中断当前输入,回到正常的单行提示符状态。
内容的提问来源于stack exchange,提问作者renick
相关产品推荐
相关产品推荐

