私は新しいです、そしてReaderオブジェクトを単語ごとに分割し、単語が見つかった時間を記録するプログラムをセットアップしようとしています。ここまで私がこれまで持っていたことがあります。Goを使用して特定の単語を検索する
func Occurrences(word string, s io.Reader) (uint, error) {
scanner := bufio.NewScanner(strings.NewReader(s))
// Split the reader into words
var word_count int // Number of the specific word found
scanner.Split(budfio.ScanWords)
for scanner.Scan() {
}
}
どこから行くのかわかりません。私が探している言葉と何を比較するのか分かりません。どんな助けもあります
符号なしの値がビット単位のオペレーションのために確保されるべきであるスキャナに現在文字列トークンを有する単語列を比較します。ここには「理由」はありません。 – JimB
これは奇妙なコメントです。あなたはintとuintの両方にbitwise opsを使うことができます(しかし、私はそれがずっとずっと面倒であると同意します)。あなたはintより2倍高いintを数えることもできます。これは負の単語数が決して得られない状況ではここで働きます。 – dragonx
@dragonx:算術演算で使用されるすべての値の符号なしの値を避けるのが一般的に認められています。負の数を期待していないかもしれませんが、署名されていない値が発生したときにそのバグを簡単にキャッチするつもりはありません。 Goはすべてのカウントとインデックス作成操作に符号付きの値を使用していることに気付くでしょう。 「2倍の高さ」は実際には良い引数ではなく、わずか1ビットの違いです。特に整数値が必要な場合は非常に特殊なケースになります(2 << 63,2 "64) - おそらくあなたはその時点で任意の精度の整数を探しているでしょう。 – JimB