Может ли Юлия обрабатывать типизированные массивы с элементами более 1 типа? - PullRequest
1 голос
/ 09 мая 2019

Я хочу, чтобы конструктор / метод принимал массив, но этот массив может содержать только элементы 2 разных типов. Например:

Array{Union{Int64, String}} = [1, 2, "3"]

Но теперь я хочу создать массив как [1, 2, "3"] (без указания типа) и сделать так, чтобы он автоматически принимался конструктором, который ожидает аргументы типа ::Array{Union{Int64, String}}. Что происходит, так это то, что [1, 2, "3"] по умолчанию имеет тип Any и поэтому не принимается моим конструктором.

1 Ответ

1 голос
/ 09 мая 2019

Вы можете создать такой массив следующим образом:

julia> Union{Int64, String}[1, 2, "3"]
3-element Array{Union{Int64, String},1}:
 1   
 2   
  "3"

Документация для этого в руководстве может быть найдена здесь . Цитировать руководство,

Массив с определенным типом элемента может быть создан с использованием синтаксиса T [A, B, C, ...]. Это создаст 1-й массив с типом элемента T, инициализированный для содержания элементов A, B, C и т. Д.

...