我试图判断我的整数值或浮点值是否为空.但是类型错误被抛出.

已try :

if foo == nil    
//Error: cannot convert nil to type float32
//all other methods I Tried also throw type errors too

推荐答案

整数和浮点数的zero values是0.nil不是有效的整数值或浮点值.

指向整数或浮点数的指针可以是nil,但不能是它的值.

这意味着您可以判断零值:

if foo == 0 {
  // it's a zero value
}

或者你要处理指针:

package main

import (
    "fmt"
)

func main() {
    var intPointer *int

    // To set the value use:
    // intValue := 3
    // intPointer = &intValue

    if intPointer == nil {
        fmt.Println("The variable is nil")
    } else {
        fmt.Printf("The variable is set to %v\n", *intPointer)
    }
}

Go相关问答推荐

为什么要立即调用内联函数,而不仅仅是调用其包含的函数?

我怎样才能改进这个嵌套逻辑以使其正常工作并提高性能

按位移计算结果中的差异

如何将Golang测试用例的测试覆盖率值与特定阈值进行比较

使用 httptest 对 http 请求进行单元测试重试

无法从主域访问子域:无Access-Control-Allow-Origin

Neptune 在连接到启用 IAM 的 Neptune 实例时抛出握手错误错误

甚至用天真的洗牌分配?

如何在切片增长时自动将切片的新元素添加到函数参数

Protobuf.Any - 从 json.RawMessage 解组

Go cmp - 如何为以 struct 为键的映射定义自定义相等性?

使用 GO 在侧 tar 文件中提取 tar 文件的最快方法

如何修改go gin的默认端口?我的 8080 端口正在使用中

go:识别重新定义标志的包

如何在gin中获取参数值数组

GORM GIN 更新查询导致 500 内部服务器错误

有没有办法在一个 goroutine 返回后延迟后取消上下文?

如何在 Gorm 中获得特定日期的最大值?

Golang 泛型同时具有接口和实现

关于GO的几个问题