Go言語学習の4日目です。
今日は昨日作成したWebサービスのレスポンスタイムを計測するCLIツールを改良しました。
Golangの正規表現とリストのインデックス
コマンドライン引数の引数として、"https://"で始まっているかをチェックしたいと思い、正規表現で確認するようにしました。regexpライブラリを使って実装しました。PHPと同じように実装できたので、特に迷うところはありませんでした。
また、引数に複数のURLを入れることが出来るようにしました。URLという構造体のリストを作成し、その中に正規表現で確認したurlを追加するようにしました。
また、リストの参照の仕方をもう少し勉強しないといけないと思いました。
1).スライスのインデックスは0から始まる
2).3番目以降を取り出すには、numbers[2:]
と記述する
3).8番目までを取り出すには、numbers[:8]
と記述する
おそらく一般化すると、以下のようになるでしょうか?
numbers[x:]と書くと、x番目のインデックスは含む。
numbers[:x]と書くと、x番目のインデックスは含まない。
// 適切なURL(https://から始まっているかをチェック)
re := regexp.MustCompile(`^https://`)
for _, arg := range os.Args[1:] {
if re.MatchString(arg) {
urls = append(urls, URL{Url: arg})
} else {
fmt.Printf("%sは不正なURLです", arg)
return
}
}
次回の課題
今日は複数の引数を取って、正規表現で引数をチェックするまでで終わってしまいました。明日こそ、goroutineを使って、複数URLを並行チェックできるようにしたいです。