開発環境
- macOS Catalina - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Go (プログラミング言語)
入門Goプログラミング (Nathan Youngman(著)、Roger Peppé(著)、吉川 邦夫(監修, 翻訳)、翔泳社)のUNIT 6(ネズミの穴を下って)、LESSON 28(エラーは人の常)の練習問題の解答を求めてみる。
コード
package main
import (
"fmt"
"net/url"
"os"
)
func main() {
us := []string{
"https://www.mkamimura.com",
"https://a b.com/",
}
for _, u := range us {
parsedURL, err := url.Parse(u)
if err != nil {
fmt.Printf("%#v\n%[1]v\n", err)
if e, ok := err.(*url.Error); ok {
fmt.Printf("%#v\n%v, %v, %v\n", e, e.Op, e.URL, e.Err)
os.Exit(1)
}
}
fmt.Printf("%#v\n%[1]v\n\n", parsedURL)
}
}
入出力結果(Zsh、PowerShell、Terminal)
% go run url.go
&url.URL{Scheme:"https", Opaque:"", User:(*url.Userinfo)(nil), Host:"www.mkamimura.com", Path:"", RawPath:"", ForceQuery:false, RawQuery:"", Fragment:""}
https://www.mkamimura.com
&url.Error{Op:"parse", URL:"https://a b.com/", Err:" "}
parse https://a b.com/: invalid character " " in host name
&url.Error{Op:"parse", URL:"https://a b.com/", Err:" "}
parse, https://a b.com/, invalid character " " in host name
exit status 1
%
0 コメント:
コメントを投稿