回答編集履歴

1

追記

2020/05/21 11:38

投稿

nobonobo
nobonobo

スコア3367

test CHANGED
@@ -33,3 +33,55 @@
33
33
  }
34
34
 
35
35
  ```
36
+
37
+
38
+
39
+ ### 追記
40
+
41
+
42
+
43
+ コメントにて「表示のために意図した形に加工したい」とのこと。
44
+
45
+ であれば、保持する内容は`[]models.Task`のままで大丈夫だと思います。
46
+
47
+
48
+
49
+ - models.Taskを受け取って文字列化する関数を作る。
50
+
51
+ - models.Taskに`String() string`メソッドを生やす(fmt操作の出力をカスタマイズ)。
52
+
53
+ - `type CustomTime time.Time`にStringメソッドを生やしてそれをmodels.Taskの日付フィールドの型にする(fmt操作の出力をカスタマイズ)。
54
+
55
+ - models.Taskに`MarshalJSON() ([]byte, error)`というメソッドを生やしてカスタマイズ、出力時はJSONでエンコード。
56
+
57
+
58
+
59
+ などなどの方法があります。
60
+
61
+ 上記のような操作を行う「関数」や「構造体ラッピング(models.Taskをフィールドにもつ構造体を定義)」を出力形態別に用意すればOKだと思います。
62
+
63
+ なのでわざわざ別のmap型コンテナに移し替える必要はないと思います。
64
+
65
+ (特に表示のためだけであれば)
66
+
67
+
68
+
69
+ 例えば関数を作った場合は以下のように使えばOK。
70
+
71
+ ```go
72
+
73
+ func TaskToString(t models.Task) string {...}
74
+
75
+
76
+
77
+ func PrintAllTask(tasks []models.Task) {
78
+
79
+ for _, task := range tasks {
80
+
81
+ fmt.Println(TaskToString(task))
82
+
83
+ }
84
+
85
+ }
86
+
87
+ ```