javascript - 这个数组定义到底做了什么?

标签 javascript ruby

下面是我用 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

如果第一个表达式的计算结果为 falsenil,则意味着将执行第二个表达式。

关于javascript - 这个数组定义到底做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15816765/

相关文章:

javascript - 鼠标悬停时在另一个图像之上显示图像

ruby-on-rails - ROR 相当于 Phoenix Mix?

Ruby 将字符串插值应用于单引号字符串

ruby - 如何在 Ruby 中列出局部变量?

ruby - 将 `Authorization Bearer` 哈希添加到 Net::HTTP 发布请求(Ruby)

javascript - 外部JS : How to conditionally hide an item in combobox

javascript - 使用 JavaScript/Jquery 关闭 .aspx

javascript - 在 Summernote 中禁用图像上传

javascript - 关于 javascript 中的条件语句

ruby-on-rails - 在 mac os sierra 上,卡在 "Setting up CocoaPods master repo"