下面是我用 JavaScript 重写的一段 Ruby 代码。我知道它将数组打包为“8位无符号(无符号字符)”,然后将其解包为“16位无符号,VAX(小端)字节顺序”,但我尝试使其在JavaScript中工作失败。
我想知道 ||=
是否对数组中的值有任何影响?
我还想知道打包和拆包如何影响数组中的值?它只是将 0x01
更改为 0x0100
吗?
@_tree_left ||= [
0x01, 0x01, 0x03, 0x01, 0x05, 0x01, 0x07, 0x01, 0x0B, 0x01, 0x0D, 0x01,
0xF9, 0x00, 0xFB, 0x00, 0xFD, 0x00, 0x00, 0x01
].pack('C*').unpack('v*')
最佳答案
||=
是一个经典的 Ruby 习语,含义:
v = v || second_expression
如果第一个表达式的计算结果为 false
或 nil
,则意味着将执行第二个表达式。
关于javascript - 这个数组定义到底做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15816765/