【问题标题】:Ignore some members of a returned tuple in Julia忽略 Julia 中返回的元组的一些成员
【发布时间】:2014-05-17 11:19:45
【问题描述】:

Julia 本身不支持多次返回。但是,Julia 通过返回一个值元组来执行类似的功能,然后可以将其分配给一个变量元组。例如:

function mult_return()
    (3,2)
end

返回元组(3,2)。然后我们可以将这两个返回值赋给不同的变量,如下:

(a,b) = mult_return()(或a,b = mult_return(),因为括号不是必需的。)

我的问题是:有没有办法忽略其中一个返回值?例如,在 Matlab 语法中,用户可以这样写:

[~, b] = mult_return()

这样只有第二个值被分配给一个变量。

在 Julia 中解决这个问题的正确方法是什么?

【问题讨论】:

    标签: julia


    【解决方案1】:

    我认为您可以做与 python 中常见的相同的事情,即使用下划线表示跳过的值。示例:

    a, _ = mult_return()
    

    它也可以多次使用

    _, _ = mult_return()
    

    【讨论】:

    • 请注意,使用 _ 不会像 Matlab 中的 ~ 那样跳过结果。它只是将它绑定到一个通常被约定忽略的变量。
    • @MattB.,你似乎是对的。在 Julia 中,这实际上并没有跳过任务。事实上,它确实定义了一个名为_ 的变量,供以后使用。但是,如果这是一个共同的约定,我很乐意接受。
    【解决方案2】:

    除了分配虚拟变量_,你可以这样做

    a, = mult_return()
    

    为了忽略第二个返回值,对于更大的元组也是如此。

    【讨论】:

    • 但是,至少根据我的测试,这只会让您忽略以后的返回值;例如,你不能做,a = mult_return()
    猜你喜欢
    • 2011-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    • 2019-07-06
    • 1970-01-01
    相关资源
    最近更新 更多