2016-05-31 11 views
-4

Ich kann nicht finden, warum unten Code kompiliert Fehler "lebendig erklärt und nicht verwendet".Go - deklariert und nicht verwendet

func ping(ip string) {  
    var alive bool 
    _, err := exec.Command("ping", "-n 1", "-w 1000", ip).Output() 
    if err != nil { 
     alive = false 
    } else { 
     alive = true 
    } 
} 
+4

richtig, Sie verwenden es nicht –

+2

Was machst du mit 'var alive bool'? Sie verwenden es nie irgendwo im Beispiel. Sie könnten es ausdrucken oder zurückgeben und es geht Ihnen gut, aber Sie müssen etwas damit machen. – Snowman

Antwort

1

Der Kompilierungsfehler, den Sie sehen, ist genau was passiert. Das var alive bool ist nicht verwendet. Sie deklarieren es und weisen ihm einen Wert zu, aber Sie tun nie etwas damit. Hier

ist eine playground -friendly Modifikation des Codes, die ausgeführt werden soll:

package main 

import (
    "fmt" 
    "strconv" 
) 

func main() { 
    fmt.Println(isInt("Hello, playground")) // prints false 
    fmt.Println(isInt("1234567890")) // prints true 
} 

func isInt(s string) bool { 
    var alive bool 
    _, err := strconv.Atoi(s) // simply to demonstrate an error case 
    if err != nil { 
     alive = false 
    } else { 
     alive = true 
    } 
    return alive  
} 

Beachten Sie, dass ich noch am Leben zurückzukehren. Die Funktion ist nutzlos und nicht etwas, was ich an und für sich vorschlagen würde, aber es sollte helfen zu veranschaulichen, was in Ihrem Beispiel fehlt.

1

Da es sich um eine lokale Variable handelt, wird der Bereich am Ende der Funktion verlassen. alive wird innerhalb der Funktion weder ausgewertet noch zurückgegeben. Daher beschwert sich der Compiler.

Verwandte Themen