dart 基础

 dartpad在线调试  :https://dartpad.dartlang.org  运行需要用墙

vscode执行dart

1.安装Code Runner

2.安装dart插件

3.配置环境变量

 D:Program Filesflutterincachedart-sdkin   --用的是flutter里的dartsdk,可以单独下载

4.使用

vscode新建dart文件

右键run code   ,成功!

 可能出现的乱码问题

 

ok

 GitLens 插件:逐行显示git提交修改时间

 

一、数据类型

1.num类型

num类型有两个子类int类型和double类型

2.String类型

3.bool类型

4.List类型

main(){
var list = ['tom', 'mei', 'jay'];
print(list);//打印 [tom, mei, jay]
print(list.length);// 3
list.add('han');
print(list);//[tom, mei, jay, han]
//在 list 字面量之前添加 const 关键字,可以 定义一个不变的 list 对象
var constantList = const [1, 2, 3];
//constantList.add(4);//报错
print(list[0]);// tom
print('indexOf--' +list.indexOf('mei').toString());//根据值返回索引下标
//删除指定元素,注意1不是下标,是值,如果值未找到不会报错
print(list.remove('mei'));//true      
print(list);//[tom, jay, han]
}

5.Map类型

main(){
  Map name={'name':'tom','age':22};
  print(name);
}

二、常量与变量

1.默认值 

如果声明变量不赋值,所有类型的变量都默认为null包括int类型

main(){
  int name;
  print(name);
}

2.常量 final const

final  name='a';

不允许被修改

main(){
  final String name='a';
  name='aaa';
  print(name);
}

使用final const可以省略变量类型

final  name='a';

 final和const的区别

 3.私有变量

所有名字以下划线开头的变量,Dart 的编译器都会将其强制标记为私有的

三、运算符

四、函数.

1.一般函数

void say(){
  print('hello');
}
main(){
say();
}

2.函数简写

如果只有一行,可以用=> 代替{}

main()=> print('a');

3.可选参数

 可选参数分为:可选命名参数和可选位置参数。这两种方式不能同时在一个函数使用

(1)可选命名参数

运行

还可以设置默认参数

运行

如果 name没有默认值,并且调用时也没有传参,则输出null

(2)提示需要填写的可选参数

 pubspec.yaml

name: my_app
dependencies:
  meta: ^1.1.8

提示

(3)可选位置参数:

 

五、流程控制

1.if else

main() {
  int count = 8;
  if (count == 6) {
    print('a');
  } else if (count == 7) {
    print('b');
  } else {
    print('c');
  }
}

2.for 循环

main() {
  int count = 8;
  for (int i = 0; i < count; i++) {
    print(i);
  }
}

3.while   do-while

main() {
  int count = 8;
  while (count != 0) {
    count--;
    if (count == 6) {
      print('count');
      continue;
    }
    if (count == 3) {
      break;
    }
    print(count);
  }
}

4.switch case

main() {
  int count = 8;
  switch (count) {
    case 6:
      print('ok6');
      break;
    case 8:
      print('ok8');
      break;
    default:
      print('ok');
  }
}

5.Assert (断言)

assert(bool)为真时正常往下执行,为假时推出程序,此代码只在调试模式下管用

main() {
  int count = 8;
  assert(count < 7);
  print(count);
}

 六、异常

1.

main() {
  throw '抛出异常';
}

2.

main() {
  throw Exception('抛出指定异常');
}

3.try

main() {
  try{

  }catch(e){

  }finally{

  }
}

七、泛型

var names = List<String>();
names.addAll(['Seth', 'Kathy', 'Lars']);
print(names is List<String>); // true

八、Type

查看变量类型
main(){
//查看变量类型
var i=10;
print(i.runtimeType);
}
原文地址:https://www.cnblogs.com/buchizaodian/p/10399224.html