1

如何打破 Coffeescript 中的长十六进制值,使其跨越多行?

authKey = 0xe6b86ae8bdf696009c90e0e650a92c63d52a4b3232cca36e0ff2f5911e93bd0067df904dc21ba87d29c32bf17dc88da3cc20ba65c6c63f21eaab5bdb29036b83

类似于

authKey = 0xe6b86ae8bdf696009c90e0e650a92c63d52a4b323\
          2cca36e0ff2f5911e93bd0067df904dc21ba87d29c3\
          2bf17dc88da3cc20ba65c6c63f21eaab5bdb29036b83

使用\会导致意外的“NUMBER”错误,使用换行符会导致意外的“INDENT”错误

4

2 回答 2

1

在 CoffeeScript 中这样做实际上没有意义,因为数字存储为 64 位 IEEE 754 值,并且您有太多的精度位,无法将值存储为数字。

如果你写

authKey = 0xe6b86ae8bdf696009c90e0e650a92c63d52a4b3232cca36e0ff2f5911e93bd0067df904dc21ba87d29c32bf17dc88da3cc20ba65c6c63f21eaab5bdb29036b83
console.log(authKey)

那么记录的值是

1.2083806867379407e+154

您希望将您的 authKey 存储为字符串或字节数组,这两者对于跨多行写入都是微不足道的。

于 2013-04-05T09:15:13.467 回答
0

就像其他人所说的那样,与字符串相比,将其存储在数字中并没有多大意义。但是,我决定将一些东西放在一起以允许它:

stringToNumber = ( str ) -> parseInt( str.replace( /\n/g, '' ) )

authKey = stringToNumber """
  0xe6b86ae8bdf696009c90e0e650a92c63d52a4b323
  2cca36e0ff2f5911e93bd0067df904dc21ba87d29c3
  2bf17dc88da3cc20ba65c6c63f21eaab5bdb29036b83
"""

就像雷说的那样,这只会导致:

1.2083806867379407e+154
于 2013-04-05T20:38:06.227 回答