相关疑难解决方法(0)

Java是"通过引用传递"还是"传递价值"?

我一直认为Java是传递引用的.

但是,我看过一些博客文章(例如,这个博客)声称它不是.

我不认为我理解他们所做的区别.

解释是什么?

java methods parameter-passing pass-by-reference pass-by-value

6270
推荐指数
80
解决办法
189万
查看次数

Dart - 按 int 值传递但对列表引用?

在 Dart 中,查看下面的代码,它是否对列表“按引用传递”,对整数“按值传递”?如果是这种情况,什么类型的数据将通过引用/值传递?如果不是这种情况,导致这种输出的问题是什么?

void main() {
  var foo = ['a','b'];
  var bar = foo;
  bar.add('c');
  print(aoo); // [a, b, c]
  print(bar); // [a, b, c]
  
  var a = 3;
  int b = a;
  b += 2;
  print(a); // 3
  print(b); // 5
}
Run Code Online (Sandbox Code Playgroud)

dart

7
推荐指数
1
解决办法
3775
查看次数

“通过分配”是什么意思?

以下是我对java和python中类型和参数传递的理解:在java中,有原始类型和非原始类型。前者不是客体,后者是客体。在python中,它们都是对象。

在java中,参数是按值传递的,因为:原始类型被复制然后传递,所以它们肯定是按值传递的。非原始类型通过引用传递,但引用(指针)也是值,因此它们也通过值传递。在 python 中,唯一的区别是“原始类型”(例如,数字)不会被复制,而只是被当作对象。

根据官方文档,参数通过赋值传递。“通过分配”是什么意思?java中的对象和python的工作方式一样吗?什么导致差异(在java中通过值传递和在python中通过参数传递)?上面有什么错误的理解吗?

python

6
推荐指数
1
解决办法
3374
查看次数

Dart 是通过引用传递的吗?

在这篇文章中:Flutter video_player dispose

我问如何处理一些东西,以便我可以再次使用它。提供的答案工作正常,但它给我留下了这个问题:

为什么这段代码按预期工作?例如,它处理旧实例videoController使用oldController

final oldController = videoController;

  WidgetsBinding.instance.addPostFrameCallback((_) async {
    await oldController.dispose();

    _initController(link); //contains reassignment of videoController = VideoController.network(...)
  });
Run Code Online (Sandbox Code Playgroud)

在 C 或类似语言中,需要使用指针(或者我应该说我的首选方式)。要传递引用,请为其分配一个新值,然后处理旧值。

dart flutter

4
推荐指数
1
解决办法
7479
查看次数

将 const 列表变量分配给非常量列表变量并修改它

我创建了一个常量列表变量,我想将其放入一个新的列表变量并修改其项目。但我收到一个错误Unhandled Exception: Unsupported operation: Cannot remove from an unmodifiable list

const List<String> constantList = [
  'apple',
  'orange',
  'banana'
];

List<String> newList = [];
newList= constantList;
newList.remove('banana');
Run Code Online (Sandbox Code Playgroud)

dart

1
推荐指数
1
解决办法
659
查看次数