1. 变量
1.1 是什么?
变量是用来存储数据的容器。在Dart中,你可以声明不同类型的变量,包括数字、字符串、布尔值等。
1.2 怎么用?
在Dart中,可以使用关键字var
、final
和dynamic
来声明变量。下面是一些示例:
var name = 'John'; // 使用var声明一个字符串类型的变量name
final age = 30; // 使用final声明一个常量age,其值在声明后不能修改
dynamic height = 1.75; // 使用dynamic声明一个动态类型的变量height
1.3 使用时需要注意什么?
- 使用
var
声明的变量会根据初始值自动推断类型,但一旦确定类型后,就不能再更改它的类型。 -
final
声明的变量只能赋值一次,一旦赋值后就不能再修改其值。 -
dynamic
声明的变量可以在运行时改变其类型,但会导致一些性能损失。
与Java和Kotlin相比:
在Java和Kotlin中,变量的声明需要显式地指定类型,例如
String name = "John";
。Kotlin中使用
val
关键字来声明不可变变量(类似于final
),例如val age: Int = 30
。
2. 常量
2.1 是什么?
常量是在程序执行期间值不会发生改变的变量。在Dart中,可以使用final
或const
关键字声明常量。
2.2 怎么用?
final int x = 5; // 使用final声明一个整数类型的常量x
const double PI = 3.14; // 使用const声明一个浮点数类型的常量PI
2.3 使用时需要注意什么?
-
final
和const
都可以用来声明常量,但在使用场景上有所不同。final
常量的值可以在运行时计算,而const
常量的值必须在编译时就确定下来。 -
final
和const
关键字可以用于声明基本数据类型、字符串以及自定义类型的常量。
与Java和Kotlin相比:
- 在Java中,可以使用
final
关键字来声明常量,例如final int x = 5;
。 - Kotlin中使用
val
关键字来声明不可变变量,例如val x: Int = 5
,但没有专门用于声明常量的关键字。
3. 数值
3.1 是什么?
数值是用来表示数字的数据类型。在Dart中,有整数类型和浮点数类型。
3.2 怎么用?
int age = 30; // 声明一个整数类型的变量age
double height = 1.75; // 声明一个浮点数类型的变量height
3.3 使用时需要注意什么?
- Dart中的整数类型为
int
,浮点数类型为double
。 - 数值类型支持基本的算术运算,如加法、减法、乘法和除法。
与Java和Kotlin相比:
- 在Java和Kotlin中,整数类型的声明方式与Dart类似,分别为
int
和Integer
(Java)以及Int
(Kotlin)。 - 浮点数类型的声明方式在Java中为
double
,而在Kotlin中为Double
。
4. 布尔
4.1 是什么?
布尔类型用于表示真或假的值。在Dart中,布尔类型的关键字为bool
,只有两个可能的值:true
和false
。
4.2 怎么用?
bool isRaining = true; // 声明一个布尔类型的变量isRaining,并赋值为true
4.3 使用时需要注意什么?
- 布尔类型的变量可以用于控制程序的流程,例如条件判断和循环控制。
与Java和Kotlin相比:
- 在Java和Kotlin中,布尔类型的关键字分别为
boolean
(Java)和Boolean
(Kotlin)。 - 布尔类型的用法在Java、Kotlin和Dart中基本相同。
5. 字符串
5.1 是什么?
字符串是一系列字符的集合,用于表示文本数据。在Dart中,字符串是不可变的,意味着一旦创建后,其内容不可修改。
5.2 怎么用?
在Dart中,可以使用单引号或双引号括起来的字符序列来表示字符串。
String message1 = 'Hello'; // 使用单引号声明一个字符串变量message1
String message2 = "World"; // 使用双引号声明一个字符串变量message2
5.3 使用时需要注意什么?
- 字符串可以包含任何字符,包括字母、数字、特殊字符和空格。
- 字符串可以通过
+
运算符进行拼接,将多个字符串连接起来。 - 可以使用
${expression}
将表达式的结果嵌入到字符串中。
下面是一些示例代码,展示了字符串的基本用法:
String name = 'John';
int age = 30;
String greeting = 'Hello, my name is $name. I am $age years old.'; // 字符串插值
print(greeting); // 输出:Hello, my name is John. I am 30 years old.
需要注意的是,使用双引号和单引号来定义字符串是等效的,但在字符串内部引用相同类型的引号时,需要进行转义。
String message = 'I'm a string with single quotes.'; // 使用转义符\插入单引号
String quote = "He said, "Hello!""; // 使用转义符\插入双引号
print(message); // 输出:I'm a string with single quotes.
print(quote); // 输出:He said, "Hello!"
与Java和Kotlin相比:
- 在Java和Kotlin中,字符串的声明方式与Dart类似,可以使用单引号或双引号表示字符串,例如
String message = "Hello";
。 - 字符串的拼接在Java和Kotlin中也可以使用
+
运算符,例如String result = "Hello, " + name + "!";
。 - Kotlin还提供了字符串模板的功能,可以更方便地嵌入表达式,例如
val message = "Hello, $name!";
。
以上是关于Dart中字符串的基础知识和使用方法。字符串是处理文本数据的重要工具,在实际开发中经常用到。记住字符串是不可变的,因此每次修改字符串都会创建一个新的字符串对象。
6. 日期时间
6.1 是什么?
日期时间用于表示具体的日期和时间。在Dart中,可以使用DateTime
类来处理日期时间。
6.2 怎么用?
在Dart中,可以使用DateTime
类来表示日期和时间。你可以创建一个DateTime
对象来表示特定的日期和时间,也可以获取当前日期时间。
// 创建特定的日期时间
DateTime birthday = DateTime(1990, 5, 20); // 年、月、日
DateTime currentTime = DateTime.now(); // 获取当前日期时间
6.3 使用时需要注意什么?
-
DateTime
对象可以访问日期和时间的各个部分,如年、月、日、小时、分钟和秒。 -
DateTime
类提供了许多方法来处理日期和时间,例如计算两个日期之间的差异、格式化日期时间等。 - 可以使用
intl
包来进行更高级的日期时间处理。
下面是一些示例代码,展示了日期时间的基本用法:
DateTime now = DateTime.now(); // 获取当前日期时间
print(now); // 输出当前日期时间
int year = now.year; // 获取年份
int month = now.month; // 获取月份
int day = now.day; // 获取日期
int hour = now.hour; // 获取小时
int minute = now.minute; // 获取分钟
int second = now.second; // 获取秒钟
print('$year-$month-$day $hour:$minute:$second'); // 输出:2023-7-7 14:30:45
使用intl
包可以进行更高级的日期时间处理,如格式化日期时间、本地化等。以下是一个示例:
import 'package:intl/intl.dart';
DateTime now = DateTime.now();
String formattedDate = DateFormat('yyyy-MM-dd').format(now); // 格式化日期
print(formattedDate); // 输出:2023-07-07
与Java和Kotlin相比:
- 在Java中,可以使用
java.util.Date
和java.time
包中的类来处理日期和时间。 - Kotlin使用Java的日期时间类,但还提供了许多扩展函数和操作符来简化日期时间的处理。