如何在 julia 类型声明中定义类型元组

问题描述

如何为 julia 函数声明特定类型的元组

这有效:

function f(x,y)::Int8
    x+y
end

julia> f(2,3)
  5

这也有效:

function g(x,y)::Tuple
    x+y,x*y
end

julia> g(2,3)
  (5,6)

但我不知道如何定义元组中的类型。

例如,这会引发错误

function h(x,y)::Tuple(::Int8,::Int8)
    x+y,x*y
end
  ERROR: Syntax: invalid "::" Syntax around REPL[48]:2

这也是:

function k(x,y)::Tuple(Int8,Int8)
    x+y,x*y
end

julia> k(2,3)
  ERROR: MethodError: no method matching Tuple(::Type{Int8},::Type{Int8})

解决方法

使用花括号并省略元组元素类型的 ::

function k(x,y)::Tuple{Int8,Int8}
    x + y,x * y
end

julia> k(2,3)
(5,6)