2017-08-02 108 views
-1

這裏是圍棋strings.Split永遠不會返回零或零長度片?

ips := strings.Split(IP, ",") 
if len(ips) < 1 { 
    return fmt.Errorf("'%v' ip is wrong", ips) 
} 

一塊我的代碼我試用了一下,似乎ips變量永遠是零。例如,空字符串會產生一段空字符串(長度爲1)。

您認爲我可以刪除if塊嗎?

回答

3

你是對的:strings.Spit()永遠不會返回零值。結果將是類型爲[]string,至少包含一個包含給定字符串的元素。

是否可以刪除if塊取決於:如果len(ips) < 2?您的代碼是否有問題?如果沒有,您可以安全地移除if塊。

然而,如果例如你只對ips[1]感興趣,那麼你肯定需要先檢查。

+0

我應該完成我的問題「零或零長度切片」如果我運行'strings.Split(「」,「,」)'長度爲1 https://play.golang.org/p/Kaddfg9CiF – Vitalii

+1

輸出切片總是至少有一個元素。它是有道理的,即使你嘗試分割空字符串,函數將返回一個元素的切片 - 空字符串。 – bayrinat

+0

謝謝。將糾正我的答案 – TehSphinX