变量
创建字符串变量(使用了类型推断机制):
var name ='Bob';
或者显式指定类型:
String name ='Bob';
如果对象不限于单个类型,可以指定为动态类型:
dynamic name ='Bob';
未初始化的变量的初始值为null
,即使是数字类型。 因为一切皆对象:
// 值是null
var obj;
final 和 const
可以使用final
或const
来声明常量,最终变量只能设置一次; const变量是编译时常量。
注意:实例变量可以是final,但不是const。
以下是创建和设置最终变量的示例:
final name ='Bob'; //没有类型注释
final String nickname ='Bobby';
您无法更改最终变量的值:
name ='Alice'; //错误:最终变量只能设置一次。
将const用于您希望成为编译时常量的变量。如果const变量在类级别,则将其标记为static const。在声明变量的地方,将值设置为编译时常量,例如数字或字符串文字,const变量或对常数进行算术运算的结果:
const bar = 1000000; //压力单位(达因/ cm2)
const double atm = 1.01325 * bar; //标准氛围
const关键字不仅用于声明常量变量。您还可以使用它来创建常量值,以及声明创建常量值的构造函数。任何变量都可以具有常量值。
var foo = const [];
final bar = const [];
const baz = []; //相当于`const []`
你可以从const声明的初始化表达式中省略const,就像上面的baz一样。
您可以更改非final,非const变量的值,即使它曾经有一个const值:
foo = [1,2,3]; //是const []
您无法更改const变量的值:
baz = [42]; //错误:无法为常量变量赋值。
Dart语言特别支持以下类型:
- 数字 - 即
num
类型,包括int
和double
,默认双精度 - 字符串 - 即
String
类型 - 布尔 - 即
bool
类型 - 列表 - 即
List
(也称为数组) - map - 即
Map
- 符文(用于表示字符串中的Unicode字符)
- 符号
Dart字符串是一系列UTF-16代码单元。您可以使用单引号或双引号来创建字符串:
var s1 = 'abcdefg.';
var s2 = "abcdedf";
可以使用${exp}
来插值替换字符串:
String firstString = "哈哈哈哈啊哈";
String a = "abcedfge${firstString}";
可以使用带有单引号或双引号的三引号来创建换行字符串:
var s1 ='''
你可以创建
像这样的多行字符串。
''';
var s2 =“”“这也是一个
多行字符串。“”“;
您可以通过在其前面加上r来创建“原始”字符串,以忽略转义符号:
String a = r"abcedfge${firstString}";
num
类型和String
类型转换:
int a = 10;
var stringA = a.toString();
int c = int.parse(stringA);
列表list
:
var list = [1,2,3];
assert(list.length == 3);
断言(list [1] == 2);
map
:
类型推断为Map <String,String>:
var gifts = {
'第一':'鹧'',
'第二':'turtledoves',
'第五':'金戒指'
};
类型推断为Map <int,String>:
var nobleGases = {
2:'氦',
10:'霓虹灯',
18:'氩',
};
var nobleGases = Map();
nobleGases[2] = 'helium';