我正在阅读"Javascript中的函数编程"一书.
在第2章中,命令性/功能性代码之间的比较如下:查找字符串中仅包含字母的前四个单词:
var words = [], count = 0;
text = myString.split(' ');
for (i=0; count<4, i<text.length; i++) {
if (!text[i].match(/[0-9]/)) {
words = words.concat(text[i]);
count++;
}
}
Run Code Online (Sandbox Code Playgroud)
var words = [];
var words = myString.split(' ').filter(function(x){
return (! x.match(/[1-9]+/));
}).slice(0,4);
Run Code Online (Sandbox Code Playgroud)
我推断,对于长度text大于4的任何情况,命令式版本将更快,因为它只运行到找到符合条件的前四个单词,而功能版本首先过滤整个阵列,然后才分开前四个元素.
我的问题是,我是否正确地假设这个?
有没有办法可以在Linux下以非规范模式读取stdin?非规范输入意味着对stdin的调用应在用户输入后立即返回,这不是默认行为,因为可以通过尝试看到:read()
// Create a buffer
let mut buffer :[u8; 1] = [0];
// Loops over the input from stdin, one character a time
while io::stdin().read(&mut buffer).unwrap() > 0 {
println!("{:?}", buffer);
}
Run Code Online (Sandbox Code Playgroud)
此代码等待用户按下return以打印内容buffer.所需的行为是在用户输入时打印.在Stdin(stdin()上面代码中的调用返回的结构)的文档中,没有引用如何更改此默认行为.