Dart入门

1、Dart 的数据类型

1.1、变量

创建一个变量

var name = "wmding";

1.2、Final 和 Const

使用过程中从来不会被修改的变量, 可以使用 finalconst,

final name = 'Bob'; // Without a type annotation

如果需要在编译时就固定变量的值,可以使用 const 类型变量。 如果 Const 变量是类级别的,需要标记为 static const

const bar = 1000000; // 压力单位 (dynes/cm2)
const double atm = 1.01325 * bar; // 标准气压

1.3、内置类型

Dart 语言支持以下内建类型:

  • Number
  • String
  • Boolean
  • List (也被称为 Array)
  • Map
  • Set
  • Rune (用于在字符串中表示 Unicode 字符)
  • Symbol
1.3.1、Number

Dart 语言的 Number 有两种类型:

  • int
  • Double
///------Number--------
int num = 12;
double numDouble = 10.0;
print(numDouble);
///---------------------
1.3.2、String

字符串通过单引号或者双引号创建。

///------Strings------
var a = "a";
String str = "str";

String str1 = '''
我是三引号

我可以空行

哈哈哈
''';
print(str1);

String str2 = """
我是三引号

我可以空行
""";

// 字符串拼接
print("$a $str");

print(a + str);

///--------------------
1.3.3、Boolean
///-------Boolean------- true false
bool flag = true;
if (flag != null) {
  print("flag: " + flag.toString());
}
///---------------------
1.3.4、List
///-------List----------
List list = [1, 2, 3];

// 添加元素
list.add(4);
list.add(5);

print(list);

// list的长度
print(list.length);
print(list[0]);

// 循环获取
for(var item in list){
  print(item);
}

list.forEach((value){
  print(value);
});

/// --------------------
1.3.5、Set

在 Dart 中 Set 是一个元素唯一且无需的集合。

var set = new Set();
set.add("1");
// 再次添加同样的元素会进行去重
set.add("1");
set.add("2");
// 2
print(set.length);
1.3.6、Map

Map 是用来关联 keys 和 values 的对象。 keys 和 values 可以是任何类型的对象。在一个 Map 对象中一个 key 只能出现一次。 但是 value 可以出现多次。

///-------Map----------
Map map = {"name": "wmding", "age": 22};

print(map);
print(map["name"]);

var person = new Map();
person["name"] = 'wmd';
person["age"] = 22;
print(person);

for(var item in map.keys){
  print(item);
}
/// --------------------

2、Dart 的运算符、条件表达式、类型转换

2.1、算术运算符

Operator Meaning
+ Add
Subtract
-*expr* Unary minus, also known as negation (reverse the sign of the expression)
* Multiply
/ Divide
~/ Divide, returning an integer result
% Get the remainder of an integer division (modulo)
print(2 + 3 == 5);
print(2 - 3 == -1);
print(2 * 3 == 6);
print(5 / 2 == 2.5); // 结果是双浮点型
print(5 ~/ 2 == 2); // 结果是整型
print(5 % 2 == 1); // 余数

2.2、关系运算符

Operator Meaning
== Equal; see discussion below
!= Not equal
> Greater than
< Less than
>= Greater than or equal to
<= Less than or equal to

2.3、逻辑运算符

Operator Meaning
!*expr* inverts the following expression (changes false to true, and vice versa)
|| logical OR
&& logical AND

2.4、赋值运算符

使用 = 为变量赋值。 使用 ??= 运算符时,只有当被赋值的变量为 null 时才会赋值给它。

// 将值赋值给变量a
a = value;
// 如果b为空时,将变量赋值给b,否则,b的值保持不变。
b ??= value;

2.5、条件表达式

Dart有两个运算符,有时可以替换 if-else 表达式, 让表达式更简洁:

  • condition ? expr1 : expr2

    如果条件为 true, 执行 expr1 (并返回它的值): 否则, 执行并返回 expr2 的值。

  • expr1 ?? expr

    如果 expr1 是 non-null, 返回 expr1 的值; 否则, 执行并返回 expr2 的值。

3、Dart 的循环语句

3.1、if 和 else

if (isRaining()) {
  you.bringRainCoat();
} else if (isSnowing()) {
  you.wearJacket();
} else {
  car.putTopDown();
}

3.2、for 循环

var message = StringBuffer('Dart is fun');
for (var i = 0; i < 5; i++) {
  message.write('!');
}

3.3、while 和 do-while

while 循环在执行前判断执行条件:

while (!isDone()) {
  doSomething();
}

do-while 循环在执行判断执行条件:

do {
  printLine();
} while (!atEndOfPage());

3.4、break 和 continue

使用 break 停止程序循环:

while (true) {
  if (shutDownRequested()) break;
  processIncomingRequests();
}

使用 continue 跳转到下一次迭代:

for (int i = 0; i < candidates.length; i++) {
  var candidate = candidates[i];
  if (candidate.yearsExperience < 5) {
    continue;
  }
  candidate.interview();
}

3.5、switch 和 case

/// --------switch-------
var sex = "男";
switch (sex) {
	case "男":
		print("男");
	break;

	case "女":
		print("nv");
	break;

	default:
	
	break;
}

4、Dart 中的函数

// 没有返回值
void printInfo(var info) {
  print(info);
}


// 有int的返回值
int sum(var a, var b) {
  return a + b;
}

5、Dart 的对象、类

跟 Java 一模一样。

class Person{
  String name;
  int age;

  Person(this.name, this.age);

  @override
  String toString() {
    return 'Person{name: $name, age: $age}';
  }

}

使用对象

// 创建对象
var person = new Person("xiaoming",21);

// 设置age,修改
person.age = 100;
print(person.toString());

var name = person.name;
print(name);

发布了57 篇原创文章 · 获赞 3 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/wmdkanh/article/details/105100395