小编nab*_*nab的帖子

在Linux上移动文件时的竞争条件

假设我有两个脚本.第一个将(使用mv命令)一些文件放入目录,第二个文件偶尔检查一次目录并处理文件.我关注的情况是当第二个脚本开始处理文件时,此时仅部分移动.这可能发生在XFS文件系统的现实生活中吗?

linux race-condition xfs

5
推荐指数
1
解决办法
1394
查看次数

Vim:在大型项目中查找并替换?

有一种方法可以使用args和argdo命令的组合替换Vim中文件中所有字符串的出现.不幸的是,这个解决方案有一个缺点:它将打开所有可能是大型项目问题的文件.有谁知道更紧凑和内存有效的方式?

vim replace

5
推荐指数
1
解决办法
992
查看次数

终端cd命令无法使用Scala脚本

我需要从Scala脚本运行shell命令,我使用以下代码片段:

import scala.sys.process.{Process, ProcessIO}

val command = "ls /tmp"
val process = Process(command)

val processIO = new ProcessIO(_ => (),
    stdout => scala.io.Source.fromInputStream(stdout).getLines.foreach(println),
    _ => ())
process.run(processIO)
Run Code Online (Sandbox Code Playgroud)

代码工作正常.我想知道为什么我得到

java.io.IOException: Cannot run program "cd": error=2, No such file or directory
Run Code Online (Sandbox Code Playgroud)

一旦我改变了cd /tmp && lsIMO相当于的命令ls /tmp

io shell scala

5
推荐指数
1
解决办法
1396
查看次数

简单的Scala TCP服务器中的套接字问题

我是Scala的新手所以问题可能很简单,尽管我花了一些时间来解决它.我有一个简单的Scala TCP服务器(没有actor,单线程):

import java.io._
import java.net._

object Application {
  def readSocket(socket: Socket): String = {
    val bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream))
    var request = ""
    var line = ""
    do {
      line = bufferedReader.readLine()
      if (line == null) {
        println("Stream terminated")
        return request
      }
      request += line + "\n"
    } while (line != "")
    request
  }

  def writeSocket(socket: Socket, string: String) {
    val out: PrintWriter = new PrintWriter(new OutputStreamWriter(socket.getOutputStream))
    out.println(string)
    out.flush()
  }

  def main(args: Array[String]) {
    val port = 8000 …
Run Code Online (Sandbox Code Playgroud)

java sockets tcp scala

5
推荐指数
1
解决办法
4495
查看次数

Node.js事件处理顺序

给定Node.js中的一些EventEmitter实例,是否绝对保证所有事件的处理顺序与它们在代码中出现的顺序相同?

var EventEmitter = require('events').EventEmitter;
var inherits = require('util').inherits;

var Emitter = function () {
    EventEmitter.call(this);
    var that = this;
    this.test = function () {            
        that.emit('eventA');
        that.emit('eventB');
    }
};
inherits(Emitter, EventEmitter);

var emitter = new Emitter();

emitter.on('eventA', function () {
    doTaskA();
});

emitter.on('eventB', function () {
    doTaskB();
});

emitter.test();
Run Code Online (Sandbox Code Playgroud)

是否会出现doTaskB()以前开始的情况doTaskA()

events node.js

4
推荐指数
1
解决办法
2644
查看次数

Node.js不适合哪种任务?

众所周知,Node.js(Google的V8)由于其非阻塞架构,可以有效地处理每秒数千个请求用作Web服务器.Node还可以轻松应对大量IO密集型任务.我想知道我们以前用Perl,Python或Ruby解决的每个服务器任务是否可以用Node.js编写,以便快速运行.或者应该避免使用Node.js这类特定的任务?

scripting node.js

3
推荐指数
1
解决办法
1250
查看次数

Lua:嵌套if语句

Lua是一种轻松而强大的语言,但有时感觉缺少一些我们在其他语言中习惯的非常方便的功能.我的问题是关于嵌套if条件.在Perl,Python,C++中,我通常倾向于避免嵌套构造并尽可能编写普通代码,如:

# Perl:
for (my $i = 0; $i < 10; ++$i) {
    next unless some_condition_1();
    next unless some_condition_2();
    next unless some_condition_3();
    ....
    the_core_logic_goes_here();        
}
Run Code Online (Sandbox Code Playgroud)

Lua缺少该语句nextcontinue语句,因此相同的代码将如下所示:

-- Lua:
for i = 1, 5 do
    if some_condition_1() then
        if some_condition_2() then
            if some_condition_3() then
                the_core_logic_goes_here()
            end
        end
    end
end
Run Code Online (Sandbox Code Playgroud)

所以我想知道是否有标准方法来避免ifLua中的嵌套块?

lua

3
推荐指数
2
解决办法
3576
查看次数

在Scala中循环的正确方法

假设我在Scala中有一个字符串数组:

val strings = Array[String]("1", "2", "3", "4", "5", "6", "7")
Run Code Online (Sandbox Code Playgroud)

我需要的是创建一个新的数组,哪些元素将作为第一个数组的每三个(任意数量)后续元素的串联获得,这应该导致 ("123", "456", "7")

作为Scala的新手,我编写了以下代码,既不简洁也不有效:

var step = 3
val strings = Array[String]("1", "2", "3", "4", "5", "6", "7")
val newStrings = collection.mutable.ArrayBuffer.empty[String]

for (i <- 0 until strings.length by step) {
  var elem = ""
  for (k <- 0 until step if i + k < strings.length) {
    elem += strings(i + k)
  }
  newStrings += elem
}
Run Code Online (Sandbox Code Playgroud)

Scala的做法是什么?

for-loop scala

2
推荐指数
1
解决办法
463
查看次数

标签 统计

scala ×3

node.js ×2

events ×1

for-loop ×1

io ×1

java ×1

linux ×1

lua ×1

race-condition ×1

replace ×1

scripting ×1

shell ×1

sockets ×1

tcp ×1

vim ×1

xfs ×1