📜  Dart – 类型系统(1)

📅  最后修改于: 2023-12-03 15:14:36.364000             🧑  作者: Mango

Dart – 类型系统

Dart 是一种强类型、可选类型语言。这意味着你可以选择添加类型注解,也可以不加。

类型注解

在 Dart 中,类型注解是指在变量或函数参数名称前添加类型声明。下面是一个示例:

int x = 5;
String name = 'John';
bool isDartFun = true;

String greet(String name) {
  return 'Hello, $name!';
}
动态类型

在 Dart 中,你可以使用 dynamic 类型来表示所有类型的值。这种类型是动态类型,它只在运行时才能推断出来。

dynamic x = 5;
x = 'John';
x = ['apple', 'banana'];

不过,在实际使用中不应该滥用 dynamic 类型。如果你知道一个变量将始终包含特定类型的值,则应使用该类型来提高代码的可读性和可维护性。

final 和 const

在 Dart 中,你可以使用 finalconst 关键字来声明常量。两者都用于在运行时不可更改变量的值。

final int x = 5;
const double PI = 3.14;

final 关键字表示变量的值只能赋值一次,而 const 关键字则表示变量的值在编译时就已知,并且在整个程序运行期间都不会改变。

类型推断

Dart 具有类型推断功能,这意味着编译器可以从初始化变量时使用的值推断出其类型。

var x = 5; // x is inferred to be an int
var name = 'John'; // name is inferred to be a String

因此,你可以使用 var 关键字来声明变量而无需指定类型。

总结

Dart 的类型系统非常灵活,从动态类型到静态类型都支持。使用类型注解可以提高代码的可读性和可维护性,而 finalconst 关键字可以防止在运行时不必要的变量赋值。类型推断功能也可以帮助减少重复的类型声明。