85 lines
1.9 KiB
Dart
85 lines
1.9 KiB
Dart
///
|
||
/// build in data types
|
||
/// - All data types in Dart are Objects.
|
||
///
|
||
main(List<String> args) {
|
||
// Numbers
|
||
var num1 = 100; // type 'int'
|
||
int num2 = 200;
|
||
double num3 = 30.0;
|
||
// float num4; [Error] dart语言没有float关键字,使用double
|
||
print(
|
||
"Numbers: num1=$num1, num2=$num2, num3=$num3, num1+num2=${num1 + num2}");
|
||
|
||
//num1 = num3; [Error] A value of type 'double' can't be assigned to a variable of type 'int'
|
||
num1 = num2; // 'var' 定义的变量首次赋值后类型就不可以改变了, num1为'int'类型
|
||
|
||
print('');
|
||
|
||
// Strings
|
||
String name = "Dart";
|
||
var company = "Google"; // type 'String'
|
||
print("$company $name");
|
||
|
||
// 多行文本
|
||
String lines = 'hello \n'
|
||
'dart \n'
|
||
'Strings';
|
||
print(lines);
|
||
|
||
// 字符串可以用单引号,也可以用双引号
|
||
var s1 = ' "Hello" ';
|
||
var s2 = " 'Dart' ";
|
||
var s3 = " \"Google\" ";
|
||
print("$s1, $s2, $s3");
|
||
|
||
print('');
|
||
|
||
// bool
|
||
bool isValid = true;
|
||
var isAlive = false; // type 'bool'
|
||
print("$isValid $isAlive");
|
||
|
||
print('');
|
||
|
||
// dynamic
|
||
int number; // 未赋值的变量默认值为'null'
|
||
print(number == null ? 'null' : 'not null');
|
||
|
||
number = 123;
|
||
dynamic obj = number;
|
||
print("obj is 'int', value is $obj");
|
||
|
||
obj = "Hello";
|
||
print("obj is 'String', value is $obj");
|
||
|
||
print('');
|
||
|
||
// final
|
||
final langName = 'Dart';
|
||
//langName = 'Java'; [Error] a final variable, can only be set once.
|
||
|
||
// const
|
||
const PI = 3.14;
|
||
print('$langName, $PI');
|
||
|
||
print('');
|
||
|
||
var c1 = Circle(20.0);
|
||
var c2 = Circle(30.0);
|
||
print("c1: ${c1.radius}");
|
||
print("c2: ${c2.radius}");
|
||
print("PI: ${Circle.PI}");
|
||
}
|
||
|
||
class Circle {
|
||
//const PI = 3.14; [Error] Only static fields can be declared as const.
|
||
|
||
// 常量必须在定义时赋值
|
||
static const PI = 3.14;
|
||
// final 的变量可以在构造函数中赋值
|
||
final double radius;
|
||
|
||
Circle(this.radius);
|
||
}
|