勉強したのでコメントつけて理解を深めた