2016-07-21 26 views
-2

Ich versuche zu überprüfen, ob meine Integer oder Float-Wert leer ist. Aber Typfehler wird geworfen.Überprüfen Sie leere float oder Integer-Wert in Golang

versucht:

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

Was meinen Sie integer oder float-Wert? Du kannst nicht beides haben. – squiguy

+0

Eine Ganzzahl oder ein Gleitkomma kann nicht Null sein. Standardwert ist 0 – tier1

+0

das, warum ich angegeben oder zwischen –

Antwort

11

Die zero values für ganzzahlige und schwimmt ist 0. nil keine gültige Zahl oder Gleitkommawert ist.

Ein Zeiger auf eine Ganzzahl oder ein Float kann nil sein, aber nicht sein Wert.

Dies bedeutet, dass Sie entweder überprüfen für den Nullwert:

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

Oder Sie beschäftigen sich mit Zeiger:

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) 
    } 
} 
+0

Für den Zeiger Beispiel, alternativ können Sie den Wert setzen der Zeiger zeigt auf den Dereferenzoperator '*': https://play.golang.org/p/9TrwjUkr4I – Kaedys

+0

Das ist ein schöner Trick @ Kaedys –