如何在Coffeescript中打破长十六进制值以使其跨越多行?
authKey = 0xe6b86ae8bdf696009c90e0e650a92c63d52a4b3232cca36e0ff2f5911e93bd0067df904dc21ba87d29c32bf17dc88da3cc20ba65c6c63f21eaab5bdb29036b83
类似
authKey = 0xe6b86ae8bdf696009c90e0e650a92c63d52a4b323\
2cca36e0ff2f5911e93bd0067df904dc21ba87d29c3\
2bf17dc88da3cc20ba65c6c63f21eaab5bdb29036b83
使用 \ 会导致意外的'NUMBER'错误, 在意外的'INDENT'中使用换行符 错误
答案 0 :(得分:1)
在CoffeeScript中执行此操作实际上没有意义,因为数字存储为64位IEEE 754值,并且您有太多精度值,无法将值存储为数字。
如果你写
authKey = 0xe6b86ae8bdf696009c90e0e650a92c63d52a4b3232cca36e0ff2f5911e93bd0067df904dc21ba87d29c32bf17dc88da3cc20ba65c6c63f21eaab5bdb29036b83
console.log(authKey)
然后记录的值是
1.2083806867379407e+154
您希望将authKey存储为字符串或字节数组,这两者都可以跨多行写入。
答案 1 :(得分:0)
就像其他人所说的那样,存储在数字中并没有真正意义,而不是字符串;但是,无论如何,我决定把它放在一起以允许它:
stringToNumber = ( str ) -> parseInt( str.replace( /\n/g, '' ) )
authKey = stringToNumber """
0xe6b86ae8bdf696009c90e0e650a92c63d52a4b323
2cca36e0ff2f5911e93bd0067df904dc21ba87d29c3
2bf17dc88da3cc20ba65c6c63f21eaab5bdb29036b83
"""
就像雷说的那样,这只会导致:
1.2083806867379407e+154