type
status
date
slug
summary
tags
category
icon
password
<ins/>
在 Dart 中,函数参数传递是通过 值传递 的方式进行的,但需要注意的是,对于对象和集合,传递的是对象的引用的拷贝。这种方式有时会让人误解为引用传递。

1. 值传递

当你将基本数据类型(如 intdoubleboolString)作为参数传递给函数时,Dart 会将这些值的副本传递给函数。这意味着在函数内部对参数的任何修改都不会影响原始值。

示例:

2. 引用的拷贝

当你将对象(如 ListMapSet 或自定义对象)作为参数传递给函数时,传递的是对该对象的引用的拷贝。这意味着在函数内部对该对象的修改将影响到原始对象。

示例:

3. 总结

  • 基本数据类型:值传递。对参数的修改不会影响外部变量。
  • 对象:传递对象的引用的拷贝。对对象的修改会影响原始对象。
因此,虽然 Dart 在传递对象时看似是引用传递,但实际上是通过值传递的方式传递对象的引用。这样的设计使得 Dart 的参数传递机制既简洁又容易理解,同时也确保了基本数据类型的安全性。
<ins/>