我在 Dart 中有问题交换变量函数

I have problem swap variables function in Dart

我要疯了一切看起来都很好问题在哪里?

void main(){
    int num1 = 10;
    int num2 = 11;
    
    print("First : $num1, $num2");
    
   swap(num1,num2);
    
    print("Last : $num1, $num2");
}
void swap(int num1,int num2){
    int temp;
    
    temp = num1;
    num1 = num2;
    num2 = temp;

}

我的输出: 第一:10,11 最后:10,11


// Dart 2.6.
void main(){
    int num1 = 10;
    int num2 = 11;
    
    print("First : $num1, $num2");
    
    // get returned swapped values
    List result = swap(num1,num2);
    // assign them to original variables
    num1 = result[0];
    num2 = result[1];
    //print the mutated num1 and num2
    print("Last : $num1, $num2");
    
    
}
List swap(int num1,int num2){
    int temp;
    
    temp = num1;
    num1 = num2;
    num2 = temp;
   // print("Last : $num1, $num2");
    return [num1, num2];

}

您应该尝试从交换函数中删除交换并将其直接放在主函数中。调用函数时,传递的是对变量值的引用,而不是变量本身。

@Ketan Ramteke 是对的。或者您可以 return 一个列表并像这样使用该值:

void main(){
    int num1 = 10;
    int num2 = 11;
    
    print("First : $num1, $num2");
    
    List arr = swap(num1,num2);
    
    print("Last : ${arr[0]}, ${arr[1]}");
}

List swap(int num1,int num2){
    int temp;
    
    temp = num1;
    num1 = num2;
    num2 = temp;
    return [num1, num2];
}