dart - 你能让一个函数接受两种不同的数据类型吗?

标签 dart overloading

我有一个函数应该接受两种不同的数据类型作为输入:

vec3 add(vec3 vec){
  this.x += vec.x;
  this.y += vec.y;
  this.z += vec.z;

  return this;
}
vec3 add(num scalar){
  this.x += scalar;
  this.y += scalar;
  this.z += scalar;

  return this;
}

但这会返回一个错误:

The name 'add' is already defined



有没有办法在 Dart 中完成这项工作?
我知道类型是可选的,但我想知道是否有办法。

最佳答案

Dart 不允许函数/方法重载。您可以为方法或可选或命名的可选参数使用不同的名称,以便能够使用具有不同参数集的方法。

关于dart - 你能让一个函数接受两种不同的数据类型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32423409/

相关文章:

Dart如何上传图片

java - 为什么这个 Java 方法调用被认为是不明确的?

rust - 是否可以避免 `FnOnce` 的无意义定义?

python - bin() 可以像 Python 2.6 中的 oct() 和 hex() 那样重载吗?

flutter - 如何在Flutter中控制扩展面板

angularjs - 在基于范围的事件监听器的注册过程中,组件被分离

c++ - 从文件读取时如何创建对象 vector ? [C++]

c++ - 涉及指针的函数模板重载解析

firebase - 如何从 Firestore 中对位置列表进行排序?

dart - 应用加载时将默认路由 ('/' )添加到导航器堆栈