понедельник, 18 мая 2020 г.

Неожиданный перевод строки

Почему эта программа не компилируется?

func main() {
    fruit := []string{
        "apple",
        "banana",
        "cherry"
    }
    fmt.Println(fruit)
}

../main.go:5:11: syntax error: unexpected newline, expecting comma or }

Ответ

В многострочном срезе, массиве или литерале карты каждая строка должна заканчиваться запятой.

func main() {
    fruit := []string{
        "apple",
        "banana",
        "cherry", // добавлена запятая
    }
    fmt.Println(fruit) // "[apple banana cherry]"
}

Такое поведение является следствием правил вставки точек с запятой в Go.

В результате вы можете добавлять и удалять строки без изменения окружающего кода.


Читайте также:


Комментариев нет:

Отправить комментарий