How to specify a default value of a function parameter?

dart

Solution

You can define the default function as private method :

_defaultTransform(Something v) => v;
void _doSomething(List<Something> numbers, 
                  [transform(Something element) = _defaultTransform]) {...}

Or check argument like this :

void _doSomething(List<Something> numbers, [transform(Something element)]) {
  if (!?transform) transform = (v) => v;
  ...
}

Or like Ladicek suggests :

void _doSomething(List<Something> numbers, [transform(Something element)]) {
 transform ??= (v) => v;
  ...
}

Problem

This function should transform each element of the list with the given function transform: ``` void _doSomething(List<Something> numbers, [transform(Something element)]) {...} ``` As I don't want to skip this method when the `transform` should not do anything, I wanted to give a default value to the `transform` method like this: ``` void _doSomething(List<Something> numbers, [transform(Something element) = (v) => v]) {...} ``` Unfortunately, the editor tells me Expected constant expected Is there some workaround or simply not possible (or shouldn't be done like this at all)?

Original source