2016-05-31 43 views
-4

我找不到爲什麼下面的代碼給編譯錯誤「活聲明和未使用」。去聲明和未使用

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

正確,你不用它 –

+2

你用'var alive bool'做了什麼?在示例中,您從不使用它。你可以打印它,或者返回它,你會很好,但你必須做些什麼。 – Snowman

回答

1

你看到的編譯錯誤是正好是發生了什麼事。 var alive bool未使用。您聲明它併爲其分配一個值,但是您絕不會對它做任何事情。

這裏是你的代碼的playground - 友好的修改,將運行:

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  
} 

請注意,我活着回來。該函數沒有用處,也不是我自己建議的,但它應該有助於說明示例中缺少的內容。

1

由於它是一個局部變量,它將在函數結束時退出範圍。 alive既不會評估,也不會在函數內返回。因此,編譯器抱怨。