Почему Array {Float64,1} не является подтипом Array {Real, 1} в Julia? - PullRequest
1 голос
/ 24 июня 2019

Я пытаюсь написать функцию Julia, которая может принимать как одномерный массив Int64, так и массив Float64 в качестве входного аргумента.Как я могу сделать это без определения двух версий, одной для Int64 и другой для Float64?

Я пытался использовать Array {Real, 1} в качестве типа входного аргумента.Однако, поскольку Array {Int64,1} не является подтипом Array {Real, 1}, это не может работать.

1 Ответ

0 голосов
/ 25 июня 2019

Настоящий, небезопасный способ сделать это, например:


function square(x)
# The point is for element-wise operation
       out = x.*x
end


Вывод:

julia> square(2)
4

julia> square([2 2 2])
1×3 Array{Int64,2}:
 4  4  4

...