Dart基础和语法

Dart基本语法

1. 主方法

main() {}

// 无返回值
void main() {}

2. 注释

同JavaScript: // ; /* */ ; ///

3. 变量

Dart是一个强大的脚本类语言,可以不预先定义变量类型

通过var定义自动推断类型的变量

var str = 'dart';
var myNum = 1234;

定义指定类型变量

String str = 'dart';
int myNum = 1234;

Dart变量命名规则:

  1. 变量名称必须由数字、字母、下划线和美元符($)组成
  2. 标识符开头不能是数字
  3. 标识符不能是保留字和关键字
  4. 变量的名字是区分大小写的如: age和Age是不同的变量
  5. 标识符(变量名称)一定要见名思意:变量名称建议用名词,方法名称建议用动词

4. 常量

const定义

const PI = 3.14159;

final定义

final PI = 3.1415926;

区别:最重要的它是运行时常量,并且final是惰性初始化,即在运行时第一次使用前才初始化

final today = new DateTime.now();

// 使用const定义会报错
// const today = new DateTime.now();

5. 数据类型

字符串类型
var str1 = 'this is str1';
var str2 = "this is str2";

String str3 = 'this is str3';
String str4 = "this is str4";

使用三对单引号/双引号可以定义一个多行字符串

String str = '''I
Me
My
Mine'''

字符串拼接

String str1 = '你好';
String str2 = 'Dart';
print('$str1 $str2');
print(str1 + ' ' + str2);

isEmpty: 判断字符串是否为空

数字类型

整型int

int a = 123;

浮点型double

double b = 12.3;

isNaN: 检查参数是否为非数字值

var myNum = 0/0;
print(myNum.isNaN);  // 输出结果:true
布尔类型
bool flag1 = true;
bool flag2 = false;
数组类型
var l1 = ["aaa", "bbb", "ccc"];

var l2 = new List();
l2.add('张三');
l2.add('李四');

var l3 = new List<String>();
l3.add('张三');
l3.add('李四');
字典类型
var person = {
    "name": "张三",
    "age": 23,
    "work": ["程序员", "送外卖"]
}

var p = new Map();
p["name"] = "李四";
p["age"] = 24;
p["work"] = ["程序员", "送外卖"];
判断数据类型

通过关键字is来判断数据类型

var str = '1234';

if(str is String) {
    print('String');
} else if(str is int) {
    print('Int');
} else {
    print('Others');
}
类型转换

Number类型转换为String类型:toString()

String类型转换为Int类型:int.parse()

String类型转换为Double类型:double.parse()

使用try…catch包围以防转换失败

String price = '';
try {
    print(double.parse(price));
} catch(err) {
    print(0);
}

6. 运算符

算术运算符
除法取整除法取余加一减一
+-*/~/%++
关系运算符
等于不等于大于小于大于等于小于等于
==!=><>=<=
逻辑运算符
&&||!
赋值运算符
赋值若为空则赋值
=??=

复合赋值运算符:+=、-=、*=、/=、%=、~/=

7. 条件控制

条件表达式:if…else; switch…case

三目运算符

bool a = true;
String b = a ? 'True' : 'False';
print(b); // 输出结果:True

空值合并运算符

var a;
var b = a ?? 10;
print(b); // 输出结果:10

8. 循环语句

for循环;while/do…while循环;continue和break

双循环遍历二维数组:

void main() {
  List list = [
    {
      "cate": "国内",
      "news": [
        {"title": "国内新闻1"},
        {"title": "国内新闻2"},
        {"title": "国内新闻3"},
      ]
    },
    {
      "cate": "国际",
      "news": [
        {"title": "国际新闻1"},
        {"title": "国际新闻2"},
        {"title": "国际新闻3"},
      ]
    },
  ];

  for (int i = 0; i < list.length; i++) {
    print(list[i]["cate"]);
    print("----------------------");
    for (int j = 0; j < list[i]["news"].length; j++) {
      print(list[i]["news"][j]["title"]);
    }
    print("----------------------");
  }
}

输出结果:

国内
----------------------
国内新闻1
国内新闻2
国内新闻3
----------------------
国际
----------------------
国际新闻1
国际新闻2
国际新闻3
----------------------
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值