Javascript到Golang的布尔翻译

时间:2018-12-10 14:48:04

标签: go

在JavaScript中,我看到如下功能:

function SomeFunc(i) {
    var f = 0x80000000;

    return Boolean(i & f);
}

Golang中的模拟物是什么?首先,我看到 0x80000000 是不可能的,语法是第二个问题

2 个答案:

答案 0 :(得分:2)

在JavaScript中,将任何非布尔值强制转换为布尔值只会执行“虚假”检查;在大多数情况下,任何非空值均为false,其他所有值为true。因此,Go的整数值等效于:

return i != 0

答案 1 :(得分:1)

将它们放在一起

package main

import (
    "fmt"
)
//function SomeFunc(i) {
//    var f = 0x80000000;
//
 //   return Boolean(i & f);
//}

func SomeFunc(i uint64) bool{
 return i & 0x80000000 != 0
}

func main() {
    fmt.Println(SomeFunc(0x800))
    fmt.Println(SomeFunc(0x81234567))
}