繁体   English   中英

java方法不能返回多个值的原因是什么?

[英]What is the reason that a java method cannot return more than one value?

如您所知,在python中,一个函数可以返回多个值

例如:

def myfun():
    return 1, 2, 3  

我们可以这样称呼它:

a, b, c= myfun()

但是在JAVA中,我们不能返回一个以上的值,因此我们必须创建一个包含要返回的值的对象:

class MyObject {

    private Integer a;
    private Integer b;
    private Integer c;

    public Integer getA() {
        return a;
    }
    public void setA(Integer a) {
        this.a = a;
    }
    public Integer getB() {
        return b;
    }
    public void setB(Integer b) {
        this.b = b;
    }
    public Integer getC() {
        return c;
    }
    public void setC(Integer c) {
        this.c = c;
    }
}

我们的函数将返回该对象

例如:

public MyObject myfun(){
     MyObject myObject = new MyObject();
     myObject.setA(1);
     myObject.setB(2);
     myObject.setC(3);
     return myObject;
}

ِ我们这样称呼它:

obj = myfun();
Integer a = obj.getA();
Integer b = obj.getB();
Integer c = obj.getC();

另一种解决方案是返回包含应返回的所有值的数组

但是这两种方法在编码时都很丑陋,JAVA中是否有任何限制,所以一种方法不能返回多个值?

严格来说,Python也不会返回多个值。 1, 2, 3是一个元组; 仅仅是Python的语法支持将元组自动解包为单独的变量。

该Python函数仅返回一个值。

>>> def myfun():
...     return 1, 2, 3
...
>>> a = myfun()
>>> type(a)
<class 'tuple'>

如您所见,就像Java中一样,它是一个容器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM