本記事はGo Advent Calendar 2019の12日目の記事です。前回の記事は Go の命名規則 でした。 こんにちは pon です。 BuildKit のコードリーディングをしていたらたどり着いた strings.Index 関数の内部実装と Rabin–Karp アルゴリズムが面白かったので解説します。Go初心者のGoソースコードリーディング入門としても良いサイズなので是非! strings.Index とは 簡単に言うと、任意の文字列の中にある文字列が含まれているかをチェックして、もしあればその始まりのindexの値を返す関数です。 https://github.com/golang/go/blob/go1.13.1/src/strings/strings.go#L1027