castFrom< S, T> статический метод
Адаптирует source, чтобы оно стало Set<T>.
Если указан newSet, он используется для создания новых множеств, возвращаемых методами toSet и union, а также используется для методов intersection и difference. Если newSet не указан, по умолчанию создаётся новое множество с помощью конструктора Set по умолчанию, а методы intersection и difference возвращают адаптированную версию результата вызова того же метода для исходного множества.
Если множество должно вернуть элемент, который не является T, при обращении к этому элементу будет выброшено исключение.
Если предпринимается попытка добавить значение T в адаптированное множество, при сохранении будет выброшено исключение, если только это значение также не является экземпляром S.
Если все элементы, полученные из source, действительно являются экземплярами T, и все элементы, добавленные в возвращаемое множество, действительно являются экземплярами S, то возвращаемое множество можно использовать как Set<T>.
Методы, принимающие один или несколько Object? в качестве аргумента, например contains, remove и removeAll, передают аргумент напрямую методу этого множества без каких-либо проверок.
Реализация
static Set<T> castFrom<S, T>(Set<S> source, {Set<R> Function<R>()? newSet}) =>
CastSet<S, T>(source, newSet);
© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.19.6/dart-core/Set/castFrom.html