java 传值 groovy
时间: 2023-10-19 14:16:37 浏览: 103
Java和Groovy都是基于JVM的编程语言,因此它们之间传值的方式基本相同。
在Java中,传值有两种方式:值传递和引用传递。值传递是将一个变量的值复制到另一个变量中,两个变量互不干扰,而引用传递是将一个对象的引用复制到另一个变量中,两个变量指向同一个对象。
在Groovy中,默认情况下也是采用值传递的方式进行参数传递。但是,Groovy提供了一个特殊的关键字“def”,可以让参数采用动态类型,从而实现引用传递。
下面是一个Java和Groovy的传值示例:
Java示例:
```java
public class Test {
public static void main(String[] args) {
int num1 = 10;
int num2 = 20;
swap(num1, num2);
System.out.println("num1=" + num1 + ", num2=" + num2);
}
public static void swap(int a, int b) {
int temp = a;
a = b;
b = temp;
}
}
```
输出结果:
```
num1=10, num2=20
```
可以看到,Java中采用值传递的方式,方法中修改的只是传递进去的副本,原始变量的值并没有改变。
Groovy示例:
```groovy
def swap(def a, def b) {
def temp = a
a = b
b = temp
}
def num1 = 10
def num2 = 20
swap(num1, num2)
println "num1=$num1, num2=$num2"
```
输出结果:
```
num1=20, num2=10
```
可以看到,Groovy中使用了关键字“def”,让参数采用动态类型,从而实现了引用传递。方法中修改的是原始变量的值,因此输出结果与预期相符。
阅读全文