type
status
date
slug
summary
tags
category
icon
password
<ins/>
在 Dart 中,函数参数传递是通过 值传递 的方式进行的,但需要注意的是,对于对象和集合,传递的是对象的引用的拷贝。这种方式有时会让人误解为引用传递。
1. 值传递
当你将基本数据类型(如
int
、double
、bool
和 String
)作为参数传递给函数时,Dart 会将这些值的副本传递给函数。这意味着在函数内部对参数的任何修改都不会影响原始值。示例:
2. 引用的拷贝
当你将对象(如
List
、Map
、Set
或自定义对象)作为参数传递给函数时,传递的是对该对象的引用的拷贝。这意味着在函数内部对该对象的修改将影响到原始对象。示例:
3. 总结
- 基本数据类型:值传递。对参数的修改不会影响外部变量。
- 对象:传递对象的引用的拷贝。对对象的修改会影响原始对象。
因此,虽然 Dart 在传递对象时看似是引用传递,但实际上是通过值传递的方式传递对象的引用。这样的设计使得 Dart 的参数传递机制既简洁又容易理解,同时也确保了基本数据类型的安全性。
<ins/>