如何在Dart或Flutter编程中生成唯一标识UUID?

4,042 阅读2分钟

这个例子显示了学习如何在Dart编程语言中生成唯一的ID - GUID, UUID,并附有例子。

Generate  UUID  in dart Flutter

本教程使用 uuid包在dart和flutter中。

UUID是一个16字节的唯一ID,每4位数字之间用连字符(-)分隔。

在flutter和dart中安装uuid包

首先,将该包添加到pubspec.yaml

这是一个在项目创建过程中产生的yaml文件,否则你可以创建一个文件pubspec.yamluuid: ^3.0.6 添加到文件中的依赖属性中

name: dartapp
description: >-
      dart example application.
version: 1.0.0

environment:
  sdk: '>=2.10.0 <3.0.0'
dependencies:
  uuid: ^3.0.6

使用dart或flutter命令安装依赖项 打开一个终端窗口。

在Dart项目中,运行dart pub get 命令 在flutter项目中,运行flutter pub get 命令

PS A:\work\dart> dart pub get
Resolving dependencies...
+ collection 1.16.0
+ crypto 3.0.1
+ typed_data 1.3.0
+ uuid 3.0.6
Changed 4 dependencies!

一旦安装了依赖关系,让我们写一个dart程序

如何在Dart或Flutter中生成唯一ID

UUID包提供了不同版本的唯一键

  • uuid v1:用基于时间戳的逻辑生成唯一ID

  • uuid v2:用基于随机id的逻辑生成唯一的id

  • uuid v5:用命名空间sha1的逻辑生成UUID

  • 在程序中导入package:uuid/uuid.dart

  • 创建Uuid对象。

  • 调用对象的v1()、v2()、v5()函数。

下面是一个在dart程序中生成唯一或UUID密钥的例子。

import 'package:uuid/uuid.dart';

void main() {
  var uuid = Uuid();

  print(uuid.v1());//59976040-a675-11ec-8ee4-1f922f66b681
  print(uuid.v4()); //38541b4a-26ee-4a4a-b0d6-e524254ff3b0
  print(uuid.v5(Uuid.NAMESPACE_NIL,"cloudhadoop.com")); //499cd2aa-9aab-5c3d-aff5-7f12306f02fb

}

输出

59976040-a675-11ec-8ee4-1f922f66b681
38541b4a-26ee-4a4a-b0d6-e524254ff3b0
499cd2aa-9aab-5c3d-aff5-7f12306f02fb

如何在dart和flutter中生成空的UUID?

有时,我们希望有一个空的UUID,从dart或flutter的方法或函数中返回。这比空值在类型安全方面有更多优势。

  • 在程序中导入uuid/uuid.dart
  • 为Uuid类调用NAMESPACE_NIL静态成员
  • 它返回完全为零的空UUID

下面是一个生成空UUID程序的例子

import 'package:uuid/uuid.dart';

void main() {
  const emptyUuid = Uuid.NAMESPACE_NIL;
  print(emptyUuid);

}

输出

00000000-0000-0000-0000-000000000000