2017-08-02 12 views
-1

は、ここで私はこれをテストしたゴーstrings.Splitはゼロまたは長さゼロのスライスを返しませんか?

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

の私のコードの一部であり、ips変数がnilになることはありませんようです。たとえば空の文字列は、空の文字列(長さ1)のスライスを生成します。

ブロックifを削除できると思いますか?

答えて

3

あなたは正しいです:strings.Spit()は決してゼロ値を返しません。結果は、指定された文字列を含む少なくとも1つの要素を持つタイプ[]stringになります。

ifブロックを削除できるかどうか:len(ips) < 2の場合、コードに問題はありますか?そうでなければ、ifブロックを安全に取り外すことができます。

ips[1]にしか興味がない場合は、必ず最初に確認する必要があります。

+0

"strings.Split(" "、"、 ")'を実行すると長さは1ですhttps://play.golang.org/p/Kaddfg9CiF – Vitalii

+1

出力スライスには常に少なくとも1つの要素があります。空の文字列を分割しようとしても、関数は1つの要素(空の文字列)でスライスを返します。ありがとうございます。 – bayrinat

+0

私の答えを修正する – TehSphinX

関連する問題