<itemvalue="A type representing values that are either `Future<T>` or `T`. This class declaration is a public stand-in for an internal future-or-value generic type, which is not a class type. References to this class are resolved to the internal type. It is a compile-time error for any class to extend, mix in or implement `FutureOr`."/>
<itemvalue="Updates the value for the provided [key]. Returns the new value associated with the key. If the key is present, invokes [update] with the current value and stores the new value in the map. If the key is not present and [ifAbsent] is provided, calls [ifAbsent] and adds the key with the returned value to the map. If the key is not present, [ifAbsent] must be provided. ```dart final planetsFromSun = <int, String>{1: 'Mercury', 2: 'unknown', 3: 'Earth'}; Update value for known key value 2. planetsFromSun.update(2, (value) => 'Venus'); print(planetsFromSun); {1: Mercury, 2: Venus, 3: Earth} final largestPlanets = <int, String>{1: 'Jupiter', 2: 'Saturn', 3: 'Neptune'}; Key value 8 is missing from list, add it using [ifAbsent]. largestPlanets.update(8, (value) => 'New', ifAbsent: () => 'Mercury'); print(largestPlanets); {1: Jupiter, 2: Saturn, 3: Neptune, 8: Mercury} ```"/>
<itemvalue="- `null` - `true` and `false` - Instances of [int], [double], [String] - Instances created through list, map and set literals - Instances created by constructors of: - [List], [Map], [LinkedHashMap], [Set] and [LinkedHashSet] - [TransferableTypedData] - [Capability] - [SendPort] instances from [ReceivePort.sendPort] or [RawReceivePort.sendPort] where the receive ports are created using those classes' constructors. - Instances of [Type] representing one of the types mentioned above, `Object`, `dynamic`, `void` and `Never` as well as nullable variants of all these types. For generic types type arguments must be sendable types for the whole type to be sendable."/>
<itemvalue="If the sender and receiver isolate share the same code (e.g. isolates created via [Isolate.spawn]), the transitive object graph of [message] can contain any object, with the following exceptions:"/>
<itemvalue="Instances of classes that either themselves are marked with `@pragma('vm:isolate-unsendable')`, extend or implement such classes cannot be sent through the ports. Apart from those exceptions any object can be sent. Objects that are identified as immutable (e.g. strings) will be shared whereas all other objects will be copied. The send happens immediately and may have a linear time cost to copy the transitive object graph. The send itself doesn't block (i.e. doesn't wait until the receiver has received the message). The corresponding receive port can receive the message as soon as its isolate's event loop is ready to deliver it, independently of what the sending isolate is doing. Note: Due to an implementation choice the Dart VM made for how closures represent captured state, closures can currently capture more state than they need, which can cause the transitive closure to be larger than needed. Open bug to address this: http:dartbug.com36983"/>
<itemvalue="Illegal argument in isolate message: object is unsendable - Library:'dart:async' Class: _AsyncCompleter@4048458 (see restrictions listed at `SendPort.send()` documentation for more information)"/>
<itemvalue="Sends an asynchronous [message] through this send port, to its corresponding [ReceivePort]. If the sending and receiving isolates do not share the same code (an isolate created using [Isolate.spawnUri] does not share the code of the isolate that spawned it), the transitive object graph of [message] can only contain the following kinds of objects: - `null` - `true` and `false` - Instances of [int], [double], [String] - Instances created through list, map and set literals - Instances created by constructors of: - [List], [Map], [LinkedHashMap], [Set] and [LinkedHashSet] - [TransferableTypedData] - [Capability] - [SendPort] instances from [ReceivePort.sendPort] or [RawReceivePort.sendPort] where the receive ports are created using those classes' constructors. - Instances of [Type] representing one of the types mentioned above, `Object`, `dynamic`, `void` and `Never` as well as nullable variants of all these types. For generic types type arguments must be sendable types for the whole type to be sendable."/>
<itemvalue="See [SendPort.send] for more information about exceptions as well as a note of warning about sending closures, which can capture more state than needed."/>
<itemvalue="The `callback`, the `message` given to it as well as the result have to be objects that can be sent across isolates (as they may be transitively copied if needed). The majority of objects can be sent across isolates."/>
<itemvalue="On web platforms this will run [callback] on the current eventloop. On native platforms this will run [callback] in a separate isolate. {@template flutter.foundation.compute.callback}"/>
<itemvalue="{@youtube 560 315 https:www.youtube.comwatch?v=5AxWC49ZMzs} {@tool snippet} The following code uses the [compute] function to check whether a given integer is a prime number."/>
<itemvalue="Asynchronously runs the given [callback] - with the provided [message] - in the background and completes with the result. {@template flutter.foundation.compute.usecase} This is useful for operations that take longer than a few milliseconds, and which would therefore risk skipping frames. For tasks that will only take a few milliseconds, consider [SchedulerBinding.scheduleTask] instead. {@endtemplate}"/>
<itemvalue="{@template flutter.material.dataTable.columnSpacing} The horizontal margin between the contents of each data column. {@endtemplate} If null, [DataTableThemeData.columnSpacing] is used. This value defaults to 56.0 to adhere to the Material Design specifications."/>
<itemvalue="{@template flutter.material.dataTable.dividerThickness} The width of the divider that appears between [TableRow]s. Must be greater than or equal to zero. {@endtemplate} If null, [DataTableThemeData.dividerThickness] is used. This value defaults to 1.0."/>
<itemvalue="Defines the horizontal layout of the [label] and sort indicator in the heading row. If [headingRowAlignment] value is [MainAxisAlignment.center] and [onSort] is not null, then a [SizedBox] with a width of sort arrow icon size and sort arrow padding will be placed before the [label] to ensure the label is centered in the column. If null, then defaults to [MainAxisAlignment.start]."/>
<itemvalue="An AST visitor that will recursively visit all of the nodes in an AST structure. For example, using an instance of this class to visit a [Block] will also cause all of the statements in the block to be visited. Subclasses that override a visit method must either invoke the overridden visit method or must explicitly ask the visited node to visit its children. Failure to do so will cause the children of the visited node to not be visited. Clients may extend this class."/>