Numbers, Strings and Booleans

5.1 Numbers

var hex = 0xFF;
var exponent = 1.42e5;
var million = 1_000_000;          // digit separators (Dart 3.6)
print(7 / 2);       // 3.5 (always double)
print(7 ~/ 2);      // 3 (integer division)
print(7 % 2);       // 1
print(-7.remainder(2));  // -1
print((2.5.floor(), 2.5.ceil(), (-2.5).abs(), 3.7.truncate()));
print((10.clamp(1, 5), 4.isEven, 3.isOdd, 0.isNegative));
print((255.toRadixString(2), int.parse('ff', radix: 16)));
print(10.gcd(4));                // 2 (for powers use pow(2, 10) from dart:math)
print((double.infinity, double.nan.isNaN, double.maxFinite));
print(BigInt.parse('123456789012345678901234567890') * BigInt.two);
import 'dart:math';
print((sqrt(16), pow(2, 10), max(3, 7), pi, e, log(e)));
final rng = Random();
print((rng.nextInt(100), rng.nextDouble(), Random.secure().nextInt(10)));

5.2 Strings

For user-perceived characters (emoji, accents), use the characters package: '๐Ÿ‘จโ€๐Ÿ‘ฉโ€๐Ÿ‘ง'.characters.length == 1.

var single = 'Single quotes';
var dbl = "Double quotes";
var interpolation = 'Sum: ${2 + 3}, name: $single';
var multi = '''
Multi-line
string''';
var raw = r'C:\path\no\escapes\n';
var concat = 'Hello ' 'World';         // adjacent literals are concatenated
var unicode = '\u{1F600} \u0041';

var s = 'Hello, Dart World';
s.length; s.toUpperCase(); s.toLowerCase(); s.trim(); s.trimLeft(); s.trimRight();
s.contains('Dart'); s.startsWith('He'); s.endsWith('ld');
s.indexOf('o'); s.lastIndexOf('o');
s.substring(7, 11);                    // "Dart"
s.split(', ');                         // ["Hello", "Dart World"]
s.replaceAll('o', '0'); s.replaceFirst('l', 'L');
s.padLeft(20, '*'); s.padRight(20);
s * 2;                                 // repetition
s[0];                                  // "H" (a UTF-16 code unit as a String)
s.codeUnitAt(0); s.runes.length;       // code points
s.isEmpty; s.isNotEmpty;
s.compareTo('Apple');
s.split('').reversed.join();           // reverse (not grapheme-safe)
'a,b,,c'.split(',').where((x) => x.isNotEmpty).toList();

5.3 StringBuffer

final buffer = StringBuffer();
for (var i = 0; i < 3; i++) {
  buffer.write('Item $i');
  buffer.writeln();
}
buffer.writeAll(['a', 'b'], ', ');
print(buffer.toString());

5.4 Booleans

Dart has no truthiness. Conditions must be bool. (if (list) doesn't compile. Use if (list.isNotEmpty).)