ZetCode

Dart int

最后修改日期:2025 年 6 月 4 日

在 Dart 中,int 类型表示整数。整数是没有小数部分的完整数字。int 类型是 Dart 的内置基本类型之一。

Dart 整数可以任意大,仅受可用内存限制。在 Web 上,由于 JavaScript 的数字表示,整数限制为 64 位。

基本整数声明

创建整数最简单的方法是使用整数字面量。

main.dart
void main() {
  int age = 35;
  int temperature = -10;
  int population = 8000000000;
  
  print(age);
  print(temperature);
  print(population);
}

我们声明三个具有不同值的整数。Dart 支持正整数和负整数。大数字可以使用下划线来提高可读性。

$ dart main.dart
35
-10
8000000000

整数运算

Dart 支持整数的標準算術運算。

main.dart
void main() {
  int a = 10;
  int b = 3;
  
  print(a + b);  // Addition
  print(a - b);  // Subtraction
  print(a * b);  // Multiplication
  print(a ~/ b); // Integer division
  print(a % b);  // Modulo
  print(a & b);  // Bitwise AND
}

这展示了基本的算术运算。请注意整数除法的 ~/ 运算符。常规除法 (/) 即使在操作数为整数时也会返回一个 double。

$ dart main.dart
13
7
30
3
1
2

整数属性和方法

int 类型提供了有用的属性和方法来进行数字操作。

main.dart
void main() {
  int num = 42;
  
  print(num.isEven);       // true
  print(num.isOdd);        // false
  print(num.isNegative);   // false
  print(num.abs());       // 42
  print(num.toDouble());   // 42.0
  print(num.toString());   // "42"
  print(num.bitLength);    // 6
}

我们检查了几个属性和方法。isEven/isOdd 检查奇偶性,abs 获取绝对值,bitLength 返回表示该数字所需的最小位数。

$ dart main.dart
true
false
false
42
42.0
42
6

整数解析

Dart 提供了从字符串解析整数的方法,并带有错误处理。

main.dart
void main() {
  String numStr = "1234";
  String invalidStr = "12a34";
  
  int parsed1 = int.parse(numStr);
  print(parsed1);
  
  int? parsed2 = int.tryParse(invalidStr);
  print(parsed2);
  
  int hex = int.parse("FF", radix: 16);
  print(hex);
}

parse 会对无效输入抛出 FormatException,而 tryParse 返回 null。radix 参数支持解析不同的进制(2-36)。

$ dart main.dart
1234
null
255

整数范围和限制

Dart 整数具有平台相关的尺寸限制,我们可以进行检查。

main.dart
void main() {
  print("Max 64-bit signed int: ${1 << 63 - 1}");
  print("Min 64-bit signed int: ${-1 << 63}");
  
  BigInt hugeNum = BigInt.parse("123456789012345678901234567890");
  print(hugeNum);
  
  int regularInt = 9007199254740991; // Max safe JS integer
  print(regularInt);
}

对于超过 64 位范围的数字,请使用 BigInt。在 Web 平台上,由于 JavaScript 的数字表示,整数限制为 53 位。

$ dart main.dart
Max 64-bit signed int: 9223372036854775807
Min 64-bit signed int: -9223372036854775808
123456789012345678901234567890
9007199254740991

最佳实践

来源

Dart int 文档

本教程介绍了 Dart 的 int 类型,并提供了实际示例,演示了其功能和用法模式。

作者

我叫 Jan Bodnar,是一位充满热情的程序员,拥有丰富的编程经验。我自 2007 年以来一直在撰写编程文章。迄今为止,我已撰写了 1,400 多篇文章和 8 本电子书。我在编程教学方面拥有十多年的经验。

列出 所有 Dart 教程