Skip to content

Commit 3b71ebb

Browse files
committed
modified omikuji map to slice
1 parent bc3d9dd commit 3b71ebb

File tree

3 files changed

+14
-37
lines changed

3 files changed

+14
-37
lines changed

kadai4/main.go

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,7 @@ func handler(w http.ResponseWriter, r *http.Request) {
2222
w.Header().Set("Content-Type", "application/json; charset=utf-8")
2323

2424
omikuji := omikuji.Omikuji{time.Now()}
25-
ret, err := omikuji.Do()
26-
res := Response{}
27-
28-
if err != nil {
29-
res.Msg = err.Error()
30-
log.Println("Error:", err)
31-
} else {
32-
res.Msg = ret
33-
}
25+
res := Response{omikuji.Do()}
3426

3527
if err := json.NewEncoder(w).Encode(res); err != nil {
3628
log.Println("Error:", err)

kadai4/omikuji/omikuji.go

Lines changed: 11 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
package omikuji
22

33
import (
4-
"fmt"
54
"math/rand"
65
"time"
76
)
87

9-
var omikuji = map[int]string{
10-
0: "凶",
11-
1: "末吉",
12-
2: "小吉",
13-
3: "中吉",
14-
4: "吉",
15-
5: "大吉",
8+
var omikuji = []string{
9+
"凶",
10+
"末吉",
11+
"小吉",
12+
"中吉",
13+
"吉",
14+
"大吉",
1615
}
1716

1817
type Omikuji struct {
@@ -23,29 +22,15 @@ func (o *Omikuji) SetSeed(seed int64) {
2322
rand.Seed(seed)
2423
}
2524

26-
type OmikujiError struct {
27-
Msg string
28-
}
29-
30-
func (err *OmikujiError) Error() string {
31-
return fmt.Sprintf(err.Msg)
32-
}
33-
34-
func (o *Omikuji) Do() (string, error) {
25+
func (o *Omikuji) Do() string {
3526
var i int
3627

3728
_, m, d := o.Time.Date()
3829
// 1/1 ~ 1/3のみ大吉を出す
3930
if int(m) == 1 && d >= 1 && d <= 3 {
40-
i = 5
41-
} else {
42-
i = rand.Intn(len(omikuji))
43-
}
44-
45-
s, ok := omikuji[i]
46-
if !ok {
47-
return "", &OmikujiError{"おみくじが引けませんでした。"}
31+
return "大吉"
4832
}
4933

50-
return s, nil
34+
i = rand.Intn(len(omikuji))
35+
return omikuji[i]
5136
}

kadai4/omikuji/omikuji_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ func Test_NormalTime(t *testing.T) {
1111
time := time.Date(2019, time.Month(8), 16, 0, 0, 0, 0, time.Local)
1212
omikuji := omikuji.Omikuji{time}
1313
expect := "大吉"
14-
actual, _ := omikuji.Do()
14+
actual := omikuji.Do()
1515
if expect != actual {
1616
t.Errorf(`Omikuji error: expect="%s" actual="%s"`, expect, actual)
1717
}
@@ -28,7 +28,7 @@ func Test_SpecificPeriod(t *testing.T) {
2828
for _, d := range days {
2929
time := time.Date(2019, time.Month(m), d, 0, 0, 0, 0, time.Local)
3030
omikuji := omikuji.Omikuji{time}
31-
actual, _ := omikuji.Do()
31+
actual := omikuji.Do()
3232
if expect != actual {
3333
t.Errorf(`Omikuji error: expect="%s" actual="%s"`, expect, actual)
3434
}

0 commit comments

Comments
 (0)