В рубина я создал массив заполнен типов:Как построить смешанный массив
[1, 'hello', :world] # [Fixnum, String, Symbol]
=> [1, "hello", :here]
Как реализовать подобный массив заполняется со смешанными типами в Go?
Как объявить массив?
В рубина я создал массив заполнен типов:Как построить смешанный массив
[1, 'hello', :world] # [Fixnum, String, Symbol]
=> [1, "hello", :here]
Как реализовать подобный массив заполняется со смешанными типами в Go?
Как объявить массив?
Вы можете сделать это через пустой интерфейс - interface{}
:
arr := make([]interface{}, 0)
arr = append(arr, "asdfs")
arr = append(arr, 5)
или в буквальном виде:
arr := []interface{}{"asdfs", 5}
Всякий раз, когда вы хотите использовать значение этого массива необходимо использовать тип утверждение.
есть только один способ (с помощью 'Interface'), чтобы реализовать его? – itsnikolay
@itsnikolay Да, Go статически типизирован Почему вам нужен такой смешанный список? – inf
Я хотел бы вернуть массив' [year, month, day] 'для результата' time .Now(). Date() ' – itsnikolay
Вопрос о том, как писать язык X на языке Y, является неправильным подходом к различным языкам. Узнайте, как решить проблему на идиоматическом языке Y способами и играть на силе языка Y, а не придерживаться любого языка X. Почему вам нужен массив разных типов? Что ты пытаешься сделать?? В зависимости от того, что может быть много разных ответов Go (например, создать интерфейс, который описывает общий бит, и сохранить ломтик * из них (срезы и массивы разные). –
И, прочитав свой комментарий к ответу, я был прав. вообще не создавайте массив разных типов, вы хотите совершенно другую конструкцию Go: несколько возвратов и/или структуру. Моя рекомендация: Остановитесь. Прочитайте [Go spec] (https://golang.org/ref/spec). Пройдите [Go tour] (https://tour.golang.org). Прочитайте [Эффективный переход] (https://golang.org/doc/effective_go.html). Продолжайте. –