dart基础语法
Posted 彬彬杨
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dart基础语法相关的知识,希望对你有一定的参考价值。
昨天看了第2个视频,今天来总结下,主要的知识点
一. 运算符
1.1. 除法、整除、取模运算
我们来看一下除法、整除、取模运算
var num = 7;
print(num / 3); // 除法操作, 结果2.3333..
print(num ~/ 3); // 整除操作, 结果2;
print(num % 3); // 取模操作, 结果1;
1.2. ??=赋值操作
dart有一个很多语言都不具备的赋值运算符:
-
当变量为null时,使用后面的内容进行赋值。
-
当变量有值时,使用自己原来的值。
main(List<String> args)
var name1 = 'coderwhy';
print(name1);
// var name2 = 'kobe';
var name2 = null;
name2 ??= 'james';
print(name2); // 当name2初始化为kobe时,结果为kobe,当初始化为null时,赋值了james
1.3. 条件运算符:
Dart中包含一直比较特殊的条件运算符:expr1 ?? expr2
-
如果expr1是null,则返回expr2的结果;
-
如果expr1不是null,直接使用expr1的结果。
var temp = 'why';
var temp = null;
var name = temp ?? 'kobe';
print(name);
1.4. 级联语法:..
-
某些时候,我们希望对一个对象进行连续的操作,这个时候可以使用级联语法
class Person
String name;
void run()
print("$name is running");
void eat()
print("$name is eating");
void swim()
print("$name is swimming");
main(List<String> args)
final p1 = Person();
p1.name = 'why';
p1.run();
p1.eat();
p1.swim();
final p2 = Person()
..name = "why"
..run()
..eat()
..swim();
二.流程控制
真的跟java 很像很像
2.1. if和else
和其他语言用法一样
这里有一个注意点:不支持非空即真或者非0即真,必须有明确的bool类型
if(true)
else if(false)
2.2. 循环操作
基本的for循环
for (var i = 0; i < 5; i++)
print(i);
for in遍历List和Set类型
var names = ['why', 'kobe', 'curry'];
for (var name in names)
print(name);
while和do-while和其他语言一致
break和continue用法也是一致
2.3. switch-case
普通的switch使用
-
注意:每一个case语句,默认情况下必须以一个break结尾
main(List<String> args)
var direction = 'east';
switch (direction)
case 'east':
print('东面');
break;
case 'south':
print('南面');
break;
case 'west':
print('西面');
break;
case 'north':
print('北面');
break;
default:
print('其他方向');
三。类和对象
Dart是一个面向对象的语言,面向对象中非常重要的概念就是类,类产生了对象。
在Dart中,定义类用class关键字
。
类通常有两部分组成:成员(member)和方法(method)。
定义类的伪代码如下:
class 类名
类型 成员名;
返回值类型 方法名(参数列表)
方法体
编写一个简单的Person类:
-
这里有一个注意点: 我们在方法中使用属性(成员/实例变量)时,
并没有加this
; -
Dart的开发风格中,在方法中通常使用属性时,会
省略this
,但是有命名冲突
时,this不能省略
;
class Person
String name;
eat()
print('$name在吃东西');
我们来使用这个类,创建对应的对象:
-
注意:从Dart2开始,new关键字可以省略
main(List<String> args)
// 1.创建类的对象
var p = new Person(); // 直接使用Person()也可以创建
// 2.给对象的属性赋值
p.name = 'why';
// 3.调用对象的方法
p.eat();
四。库的使用
在Dart中,你可以导入一个库来使用它所提供的功能。
库的使用可以使代码的重用性得到提高,并且可以更好的组合代码。
Dart中任何一个dart文件都是一个库,即使你没有用关键字
library
声明
4.1. 库的导入
import语句用来导入一个库,后面跟一个字符串形式的Uri来指定表示要引用的库,语法如下:
import '库所在的uri';
常见的库URI有三种不同的形式
-
来自dart标准版,比如dart:io、dart:html、dart:math、dart:core(但是这个可以省略)
//dart:前缀表示Dart的标准库,如dart:io、dart:html、dart:math
import 'dart:io';
-
使用相对路径导入的库,通常指自己项目中定义的其他dart文件
//当然,你也可以用相对路径或绝对路径的dart文件来引用
import 'lib/student/student.dart';
-
Pub包管理工具管理的一些库,包括自己的配置以及一些第三方的库,通常使用前缀package
//Pub包管理系统中有很多功能强大、实用的库,可以使用前缀 package:
import 'package:flutter/material.dart';
以上是关于dart基础语法的主要内容,如果未能解决你的问题,请参考以下文章