Flutter 中的基本数据类型:num、int 和 double

在 Dart 编程语言中,数值类型的基础是 num,而 intdouble 则是 num 的子类型。在开发 Flutter 应用时,理解这三者的区别和使用场景是非常重要的。本文将详细介绍 numintdouble 的定义及其使用区别。

num

num 是 Dart 中的数值类型的基础类,可以存储整数和浮点数。任何 intdouble 类型的变量都可以赋值给 num 类型的变量。

特性
  • 可以是整数或浮点数
  • 提供一些基础的数值操作方法,例如 abs()ceil()floor()
示例
dart 复制代码
void main() {
  num a = 10;
  num b = 10.5;

  print(a); // 输出 10
  print(b); // 输出 10.5

  print(a.abs()); // 输出 10
  print(b.abs()); // 输出 10.5
}

int

intnum 的一个子类型,表示整数。它可以存储任何不带小数部分的数值。

特性
  • 只能存储整数
  • 不会有小数部分
  • 支持的操作包括基本的算术运算、位运算等
示例
dart 复制代码
void main() {
  int a = 10;
  int b = -5;

  print(a); // 输出 10
  print(b); // 输出 -5

  print(a + b); // 输出 5
  print(a.isEven); // 输出 true
  print(b.isNegative); // 输出 true
}

double

double 也是 num 的一个子类型,表示双精度浮点数。它可以存储带有小数部分的数值。

特性
  • 可以存储带小数部分的数值
  • 精度较高
  • 支持科学计数法表示
示例
dart 复制代码
void main() {
  double a = 10.5;
  double b = -3.14;

  print(a); // 输出 10.5
  print(b); // 输出 -3.14

  print(a + b); // 输出 7.36
  print(a.isFinite); // 输出 true
  print(b.isNegative); // 输出 true
}

使用区别

  1. 类型选择 :在需要存储整数时,使用 int;在需要存储浮点数时,使用 double;在需要处理整数和浮点数混合的情况下,可以使用 num
  2. 性能和内存 :在性能和内存方面,intdouble 在其各自的使用场景中是优化的。如果明确知道只需要整数或浮点数,应该优先使用 intdouble
  3. 操作和方法 :虽然 num 提供了许多基础方法,但 intdouble 各自有一些特定的方法,例如 intisEvenisOdd,以及 doubleisNaNisInfinite

总结

numintdouble 是 Dart 中的三种基本数值类型,它们各有其独特的使用场景。理解它们的区别和特点,有助于在 Flutter 开发中选择合适的数值类型,从而编写出更加高效和健壮的代码。

相关推荐
alexhilton11 小时前
将应用迁移到Navigation 3:痛点、加班和紧急修复
android·kotlin·android jetpack
SoaringHeart12 小时前
Flutter进阶:基于 EasyRefresh 的下拉刷新封装 n_easy_refresh_mixin.dart
前端·flutter
杉氧16 小时前
Navigation Compose 深度实践:如何优雅地串联起你的全栈 App?
android·架构·android jetpack
雨白20 小时前
指针与数组的核心机制
android
黄林晴1 天前
Room 3.0 正式发布!包名彻底重构,KMP 成为核心主线
android·android jetpack
三少爷的鞋1 天前
Kotlin 协程环境下的 DCL 懒加载:别把线程时代的经验直接搬过来
android
plainGeekDev1 天前
Gson → kotlinx.serialization
android·java·kotlin
月光下的丝瓜2 天前
Flutter 国内安装指南
前端·flutter
CYY952 天前
Compose 入门篇
android·kotlin