Как создать фрагмент объектов, используя цикл for - PullRequest
0 голосов
/ 11 ноября 2019

Код:

    files, err := ioutil.ReadDir(".")
    elements := make(map[string]interface{})
    for _, file := range files {
        elements["name"] = file.Name()
        elements["directory"] = file.IsDir()
        elements["size"] = file.Size()
    }
    ctxt.JSON(http.StatusOK, elements)

Здесь я получаю ответ только с последней информацией о файле.
Как я могу создать фрагмент объектов, это означает, что я хочу, чтобы в ответе были указаны все файлы.

Ответы [ 2 ]

2 голосов
/ 11 ноября 2019

Примерно так:

files, err := ioutil.ReadDir(".")
elements := []map[string]interface{}{}
for _, file := range files {
    elements = append(elements, map[string]interface{}{
        "name":      file.Name(),
        "directory": file.IsDir(),
        "size":      file.Size()})
}
ctxt.JSON(http.StatusOK, elements)
0 голосов
/ 11 ноября 2019

вместо добавления вы можете создать массив размером

package main
import (
    "fmt"
    "io/ioutil"
)

func main() {
    files, _ := ioutil.ReadDir(".")
    elements := make([]map[string]interface{}, len(files))
    for i, file := range files {

        e := map[string]interface{}{
            "name":      file.Name(),
            "directory": file.IsDir(),
            "size":      file.Size(),
        }

        elements[i] = e
    }

    for i, e := range elements {
        fmt.Println(i, e)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...