我有一个非常简单的目标:编译Scala类,然后从另一个Scala脚本中加载它.问题是Scala似乎缓存(不确定在哪里)我创建的类,并且不遵守后续更改.
以下行创建一个包含两个.scala文件的目录,编译一个,然后运行另一个:
mkdir test
cd test
echo 'class MyClass(s: String)' > MyClass.scala
echo 'val p = new MyClass("ok")' > test.scala
scalac MyClass.scala
scala test.scala # this works
cd ..
rm -rf test
Run Code Online (Sandbox Code Playgroud)
如果我运行上面的行,我需要重新启动我的计算机以使下面的行工作:
mkdir test
cd test
echo 'class MyClass()' > MyClass.scala
echo 'val p = new MyClass()' > test.scala
scalac MyClass.scala
scala test.scala # this doesn't
cd ..
rm -rf test
Run Code Online (Sandbox Code Playgroud)
如果我不重新启动,我得到一个错误,我在构造函数中缺少一个String.不知道Scala-land在哪里缓存了之前基于String的构造函数.
考虑下面的代码......我试图在阅读前5行后暂停流:
var fs = require('fs');
var readline = require('readline');
var stream = require('stream');
var numlines = 0;
var instream = fs.createReadStream("myfile.json");
var outstream = new stream;
var readStream = readline.createInterface(instream, outstream);
readStream.on('line', function(line){
numlines++;
console.log("Read " + numlines + " lines");
if (numlines >= 5) {
console.log("Pausing stream");
readStream.pause();
}
});
Run Code Online (Sandbox Code Playgroud)
输出(下一个复制)表明它在暂停后继续读取行.也许readline已经在缓冲区排队了几行,无论如何都要把它们送给我......如果它继续在后台异步读取会有意义,但根据文档,我不知道是什么应该是正确的行为.有关如何达到预期效果的任何建议?
Read 1 lines
Read 2 lines
Read 3 lines
Read 4 lines
Read 5 lines
Pausing stream
Read 6 lines
Pausing stream
Read 7 lines
Run Code Online (Sandbox Code Playgroud) 我正在尝试获取一个Twitter帐户列表来加载包含数据的UITableViewController.我用这个函数:
- (void)viewDidLoad {
[accountStore requestAccessToAccountsWithType:accountType withCompletionHandler:^(BOOL granted, NSError *error) {
...
[[self tableView] insertRowsAtIndexPaths ...];
[[self tableView] reloadData];
NSLog("This message appears immediately");
...
}];
NSLog("This message appears immediately");
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,在表实际更新/重绘之前,界面似乎"挂起"了5秒(注意我调用了reloadData!).我的所有日志消息都会立即打印出来,因此我不确定是什么导致界面冻结.