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

Jon*_*nas 2 type-declaration julia

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

这有效:

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

julia> f(2, 3)
  5
Run Code Online (Sandbox Code Playgroud)

这也有效:

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

julia> g(2, 3)
  (5, 6)
Run Code Online (Sandbox Code Playgroud)

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

例如,这会引发错误:

function h(x, y)::Tuple(::Int8, ::Int8)
    x+y, x*y
end
  ERROR: syntax: invalid "::" syntax around REPL[48]:2
Run Code Online (Sandbox Code Playgroud)

这也是:

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})
Run Code Online (Sandbox Code Playgroud)

MrG*_*eek 5

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

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

julia> k(2, 3)
(5, 6)
Run Code Online (Sandbox Code Playgroud)