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 开发中选择合适的数值类型,从而编写出更加高效和健壮的代码。

相关推荐
2601_949543011 分钟前
Flutter for OpenHarmony垃圾分类指南App实战:资讯详情实现
android·java·flutter
向哆哆8 小时前
打造高校四六级报名管理系统:基于 Flutter × OpenHarmony 的跨端开发实践
flutter·开源·鸿蒙·openharmony·开源鸿蒙
2501_940007898 小时前
Flutter for OpenHarmony三国杀攻略App实战 - 设置功能实现
flutter
lbb 小魔仙9 小时前
【Harmonyos】开源鸿蒙跨平台训练营DAY9:获取分类数据并渲染
flutter·华为·harmonyos
mocoding10 小时前
Flutter 3D 翻转动画flip_card三方库在鸿蒙版天气预报卡片中的实战教程
flutter·3d·harmonyos
JMchen12311 小时前
现代Android图像处理管道:从CameraX到OpenGL的60fps实时滤镜架构
android·图像处理·架构·kotlin·android studio·opengl·camerax
2601_9498095911 小时前
flutter_for_openharmony家庭相册app实战+我的Tab实现
java·javascript·flutter
快点好好学习吧12 小时前
phpize 依赖 php-config 获取 PHP 信息的庖丁解牛
android·开发语言·php
是誰萆微了承諾12 小时前
php 对接deepseek
android·开发语言·php
2601_9498683612 小时前
Flutter for OpenHarmony 电子合同签署App实战 - 已签合同实现
java·开发语言·flutter