Hello Dart
Dart 语言与其他许多编程语言一样,以 main
函数作为程序的入口点。以下是一个简单的 "Hello Dart" 程序示例,展示了 Dart 语言的这一特点。
// 标准写法
void main(){
print("Hello Dart");
}
// 省略写法
main(){
print("Hello Dart");
}
// 简写
main()=>print("Hello Dart");
数据类型
Dart 是一种面向对象的编程语言,其中数字、布尔值、函数等均为对象。这些对象都继承自 Object 类,与 Java 有相似之处。因此,在 Dart 中,所有变量的默认值都是 null。该语言包含了多种内置数据类型,其中包括数值类型、布尔类型、字符串类型以及集合类型。
1、数字类型
在 Dart 中,数值类型用于表示整数和浮点数。Dart 提供了两种数值类型:
-
int:
-
int 类型表示整数,它的取值范围通常与平台有关,但在 Dart VM 上,它至少可以表示 -2^63 到 2^63 - 1 范围内的值。
-
int 类型的字面量可以是十进制、十六进制或八进制表示法。例如:
-
十进制:123
-
十六进制:0x123 或 0X123
-
八进制:0o123 或 0O123
-
-
-
double:
-
double 类型表示64位双精度浮点数,符合 IEEE 754 标准。
-
double 类型的字面量可以是一个小数点表示的数字,也可以是一个指数表示的数字。例如:
-
小数点:123.45
-
指数:1.23e2 或 1.23E2
-
-
在 Dart 中,数值类型是强类型的,这意味着它们在编译时就会进行检查。如果你尝试将一个 int 类型的值赋给一个声明为 double 类型的变量,或者相反,你需要显式地进行类型转换。
int myInt = 42;
double myDouble = 3.14;
// 错误:不能直接将 int 赋值给 double
// myDouble = myInt;
// 正确:显式转换 int 为 double
myDouble = myInt.toDouble();
// 错误:不能直接将 double 赋值给 int
// myInt = myDouble;
// 正确:显式转换 double 为 int
myInt = myDouble.toInt();
在进行数值运算时,Dart 会根据操作数的类型自动进行类型提升。例如,如果一个 int 和一个 double 进行运算,结果会是一个 double。
int a = 1;
double b = 1.0;
var c = a + b; // c 是 double 类型
在 Dart 中,数值类型还可以进行常见的算术运算(如加、减、乘、除)和其他数学函数(如求平方根、取整等),这些功能主要通过 dart:math 库提供。
2、布尔类型
在 Dart 中,布尔类型(bool)用于表示逻辑值,它只有两个可能的值:true 和 false。布尔类型在条件语句、循环和其他需要逻辑判断的地方非常有用。 以下是关于 Dart 中布尔类型的一些关键点:
-
声明布尔变量:
-
要声明一个布尔类型的变量,你可以在变量前加上 bool 关键字。
-
布尔变量应该只被赋值为 true 或 false。
-
bool isTrue = true;
bool isFalse = false;
-
布尔表达式:
-
Dart 中的布尔表达式会产生一个布尔值,例如比较操作符(==、!=、>、< 等)、逻辑操作符(&&、||、!)和其他可以返回布尔结果的表达式。
-
布尔表达式常用于 if、while、do-while、for 循环以及 ?: 三元操作符等结构中。
-
if (isTrue) {
print('This is true.');
}
while (!isFalse) {
print('This will loop until isFalse becomes true.');
}
-
布尔字面量:
-
true 和 false 是 Dart 中的布尔字面量,它们是编译时常量。
-
布尔字面量可以直接用于任何需要布尔值的地方。
-
-
类型转换:
-
Dart 不会自动将非布尔值转换为布尔值,如果你需要将其他类型转换为布尔值,你需要显式地进行类型转换。
-
使用 as bool 或 toDouble() 方法可以进行类型转换。
-
var myNumber = 0;
if (myNumber as bool) {
print('This will not be printed because myNumber is not true.');
}
-
布尔值的使用:
-
布尔值常用于条件判断,控制程序的流程。
-
在 Dart 中,布尔值也可以用于逻辑运算,如 &&(逻辑与)、||(逻辑或)和 !(逻辑非)。
-
bool isAdult = age >= 18;
bool canVote = isCitizen && isAdult;
bool canDrive = age >= 16 || hasDriverLicense;
3、字符串类型
在 Dart 中,字符串类型(String)用于表示一系列的字符序列。Dart 中的字符串是不可变的,这意味着一旦创建了一个字符串,你就不能更改它。如果你需要对字符串进行操作,你会得到一个新的字符串。 以下是关于 Dart 中字符串类型的一些关键点:
-
字符串字面量:
-
Dart 支持单引号(')、双引号(")和三引号(""")来创建字符串字面量。
-
单引号和双引号字符串是相同的,可以互相嵌套使用。
-
三引号字符串用于创建多行字符串,可以包含换行符和引号,而不需要转义。
-
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.";
var s5 = '''
Triple quotes allow multiline string literals.
For example, this is a Haiku:
The old pond,
A frog jumps in—
Kerplunk!
''';
-
字符串拼接:
-
Dart 支持使用 + 运算符来拼接字符串。
-
使用 ${expression} 形式的模板字符串可以进行字符串插值。
-
var s1