5

文字列をスペースで分割します。

splstr = strings.Split(str, " ")

次に、各単語を繰り返し、次のように最初の文字を確認します。

splstr[i][0] == "#"

しかし、その行から次のエラーが発生しました。

... : "#" を uint8 型に変換できません

... : 無効な操作: splstr[i][0] == "#" (uint8 と string の型が一致しません)

しかし、私はそれをつなぎ合わせました:

splstr[i][:1] == "#"

そして、それは機能します。なぜ[:1]がtype なのかstringわかりましたが、なぜ[0]type なのuint8ですか? (私は Go 1.1 を使用しています。)

4

2 に答える 2

10

文字列の配列表記は、言語仕様に記載されているように、文字列のバイトにアクセスできるためです。

http://golang.org/ref/spec#String_types

文字列のバイトは、0 から len(s)-1 までの整数インデックスによってアクセスできます。

(byte は uint8 のエイリアスです)

于 2013-06-05T17:28:33.583 に答える