1

我将如何最好地在Ramda中创建此功能?

function get_parts (buffer) {
  return {
    a: buffer.readInt16LE(0),
    b: buffer.slice(2, 4)
  }
}

get_parts(new Buffer('abcd'))

目的是保持函数调用风格并以最简单的方式指定(和加入)操作。

4

1 回答 1

2

我看不出改变该功能的真正理由。

它干净、易读,并且很好地表达了你想要做的事情。假设您仍然想通过它new Buffer('abcd')或类似的东西,我看不出有什么可做的。

如果你想制作它的无积分版本,那当然可以,但我不认为它是可取的。这在使代码更具可读性时很有用,但在这里不会这样做。这是我的第一次尝试,它并不漂亮:

var get_parts = R.converge(R.unapply(R.zipObj(['a', 'b'])), [ 
                           R.invoker(1, 'readInt16LE')(0), 
                           R.invoker(2, 'slice')(2, 4)
]);
于 2015-12-23T13:50:48.057 回答