Dart语言教程:数据类型

2023年 7月 13日 75.7k 0

编程语言最基本的特征之一就是它支持的数据类型。这些是可以用编程语言表示和操作的值的类型。

Dart语言支持以下类型 -

  • 数字
  • 字符串
  • 布尔
  • 列表(类似于数组)
  • 集合
  • 映射
  • 符文(用于表示字符串中的Unicode字符)
  • 符号

1. 数字类型

Dart中的数字类型用于表示数字文字。Dart中的数字类型有两种类型 -

  • 整数 - 整数值表示非小数值,即没有小数点的数值。例如,10是整数。使用int关键字表示整数文字。
  • 双精度数 - Dart还支持小数数值,即带小数点的值。Dart中的Double数据类型表示64位(双精度)浮点数。例如,10.10。关键字double用于表示浮点文字。

整数是没有小数点的数字。以下是定义整数文字的一些示例:

var x = 123;
var hex = 0xDEADBEEF;

Dart

如果数字包含小数,则为双精度数。以下是定义双精度数文字的一些示例:

var y = 1.199;
var exponents = 1.42e5;

Dart

从Dart 2.1开始,必要时整数文字会自动转换为双精度数:

double z = 10; // 相当于 double z = 10.0.

Dart

以下是将字符串转换为数字的方法,反之亦然:

// String 转为 int
var one = int.parse('1');
assert(one == 1);

// String 转为 double
var onePointOne = double.parse('1.1');
assert(onePointOne == 1.1);

// int 转为 String
String oneAsString = 1.toString();
assert(oneAsString == '1');

// double 转为 String
String piAsString = 3.14159.toStringAsFixed(2);
assert(piAsString == '3.14');

Dart

int类型指定传统的按位移位(),AND(&)和OR(|)运算符。例如:

assert((3 > 1 == 0001
assert((3 | 4) == 7); // 0011 | 0100 == 0111

Dart

文字数字是编译时常量。许多算术表达式也是编译时常量,只要它们的操作数是编译为数字的编译时常量。

const msPerSecond = 1000;
const secondsUntilRetry = 5;
const msUntilRetry = secondsUntilRetry * msPerSecond;

Dart

2. 字符串

字符串代表一系列字符。例如,如果要存储一些数据,如名称,地址等,则应使用字符串数据类型。Dart字符串是一系列UTF-16代码单元。符文用于表示UTF-32代码单元序列。

关键字String用于表示字符串文字,字符串值嵌入单引号或双引号中。因此可以使用单引号或双引号来创建字符串:

var s1 = 'Single quotes work well for string literals.';
var s2 = "Double quotes work just as well.";
var s3 = 'It\'s easy to escape the string delimiter.';
var s4 = "It's even easier to use the other delimiter.";

Dart

可以使用${expression}将表达式的值放在字符串中。如果表达式是标识符,则可以跳过{}。为了获得对应于对象的字符串,Dart调用对象的toString()方法。

var s = 'string interpolation';

assert('Dart has $s, which is very handy.' ==
    'Dart has string interpolation, ' +
        'which is very handy.');
assert('That deserves all caps. ' +
        '${s.toUpperCase()} is very handy!' ==
    'That deserves all caps. ' +
        'STRING INTERPOLATION is very handy!');

Dart

可以使用相邻的字符串文字或+运算符来连接字符串:

var s1 = 'String '
    'concatenation'
    " works even over line breaks.";
assert(s1 ==
    'String concatenation works even over '
        'line breaks.');

var s2 = 'The + operator ' + 'works, as well.';
assert(s2 == 'The + operator works, as well.');

Dart

使用带有单引号或双引号的三引号创建多行字符串:

var s1 = '''
You can create
multi-line strings like this one.
''';

var s2 = """This is also a
multi-line string.""";

Dart

可以通过在前面加上r来创建“原始”字符串:

var s = r'In a raw string, not even \n gets special treatment.';

Dart

文字字符串是编译时常量,只要任何插值表达式是一个编译时常量,其值为null或数值,字符串或布尔值都可以。

// 在 const 字符串中。
const aConstNum = 0;
const aConstBool = true;
const aConstString = 'a constant string';

// 不在 const 字符串中。
var aNum = 0;
var aBool = true;
var aString = 'a string';
const aConstList = [1, 2, 3];

const validConstString = '$aConstNum $aConstBool $aConstString';
// const invalidConstString = '$aNum $aBool $aString $aConstList';

Dart

3. 布尔类型

要表示布尔值,可使用Dart中的bool类型。只有两个对象具有bool类型:boolean 文字:truefalse,它们都是编译时常量。

Dart的类型安全不能使用if(nonbooleanValue)assert(nonbooleanValue)之类的代码。需要明确检查值,如下所示:

// 检查空字符串。
var fullName = '';
assert(fullName.isEmpty);

// 检查零值。
var hitPoints = 0;
assert(hitPoints

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论