Skip to content

Commit fb7952e

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

File tree

3 files changed

+14
-33
lines changed

3 files changed

+14
-33
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 & 22 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 {
@@ -27,25 +26,15 @@ type OmikujiError struct {
2726
Msg string
2827
}
2928

30-
func (err *OmikujiError) Error() string {
31-
return fmt.Sprintf(err.Msg)
32-
}
33-
34-
func (o *Omikuji) Do() (string, error) {
29+
func (o *Omikuji) Do() string {
3530
var i int
3631

3732
_, m, d := o.Time.Date()
3833
// 1/1 ~ 1/3のみ大吉を出す
3934
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{"おみくじが引けませんでした。"}
35+
return "大吉"
4836
}
4937

50-
return s, nil
38+
i = rand.Intn(len(omikuji))
39+
return omikuji[i]
5140
}

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)