• java的函数参数传递


    java中只有一种参数传递方式:传值;这点和c++不一样,c++中有传值和引用两种方式。虽然java只有传值这
    一种传递方式,但是根据参数类型的不同,函数对参数的影响也会不一样。可以这么说:形参是实参的一份拷贝,
    当参数类型是基本数据类型时,对形参的处理不影响实参,也就是你想通过形参交换两个实参是行不通的;当形参
    是对象时(事实上,是对象的引用),形参和实参指向的是同一个对象,所以通过形参对对象进行操作会影响实参
    所指向的对象。我们看看下面的swapList函数
    //交换两个list对象
    public static void swapList(List<Integer> listA,List<Integer> listB){
    List<Integer> temp = listA;
    listA=listB;
    listB=temp;
    }
    执行这个函数
    List<Integer> liA=new ArrayList<Integer>();
    List<Integer> liB=new ArrayList<Integer>();
    int x=3;
    int y=5;
    liA.add(x);
    liB.add(y);
    swapList(liA,liB);//交换
    for(int each:liA)
    System.out.println(each);
    发现打印出来的liA里面的元素还是3,说明交换没有成功,仔细想一下,就会发现执行swapList函数,listA、listB
    分别是liA、liB的一份拷贝,listA与listB交换,listA指向了原来listB指向的对象,listB指向了原来listA指向的
    对象,但是对listA和listB的处理不影响liA、liB。所以liA和liB还是分别指向原来的对象。
    最后,python的参数传递方式与java基本一致。

  • 相关阅读:
    C#构造方法重载
    coffeeScript 语法总结
    JavaScript常用代码段
    CSS选择器,CSS3选择器
    CSS实用的代码段
    Gdb 调试
    Keras同时有多个输出时损失函数计算方法和反向传播过程
    PyTorch 速查
    Keras自定义Layer使用说明
    TensorFlow Variable 和 Tensor 的区别
  • 原文地址:https://www.cnblogs.com/fengfenggirl/p/2844840.html
Copyright © 2020-2023  润新知