美文网首页
Dart基础入门

Dart基础入门

作者: 乌龟漫漫 | 来源:发表于2020-03-26 20:10 被阅读0次

程序入口

在Dart中都必须有一个顶级的main()$函数作为程序的入口。

void main() {
}

控制台输出

想要在Dart中打印到控制台,可使用print

print('Hello World!');

变量

Dart是类型安全的- 它使用静态类型检查和运行时的组合,以确保变量的值始终与变量的静态值类型匹配。但某些类型注释是可选的,Dart会执行类型推断。

int a = 123;
var a = 123;

创建和分配变量

在Dart中,变量必须是明确的类型或者系统能够解析的类型。

//Both are acceptable in Dart.
String name = 'dart'; //Explicitly typed as a string.
var otherName = 'dart'; //Inferred string.

默认值

在Dart中,未初始化的变量初始值为null

注意:数字在Dart中也被当成对象,所以只要是带有数字类型的未初始化变量的值都是“null”。

var name; // == null
int x; // == null

有关更多信息,可参考Dart官网关于变量的介绍。

检查null或者零

在Dart中,只有布尔值“true”被视为true。

var myNull = null;
  if (myNull == null) {
    print('myNull "== null" to check null');
  }
  var zero = 0;
  if (zero == 0) {
    print('zero "== 0" to check zero');
  }

运行结果:

myNull "== null" to check null
zero "== 0" to check zero

从Dart 1.12开始,null-aware运算符可用来帮我们做null的检查:

class Student {
   String name;
   int age;
   Student({this.name,this.age});
}
void main(){
  Student student = Student(name: '张三');
  print(student?.name??'null');
  print(student?.age??0);
}

运行结果:

张三
0

?.运算符在左边为null的情况下会阻断右边的调用,??运算符主要作用是在左侧表达式为null时为其设置默认值。
对其表达式:

student?.name??'null'

如果student为null或name为null都会导致表达式为null。

函数

Dart是一种真正的面向对象语言,所以即使是函数也是对象,并且有一个类型,Function。这意味着函数可以分配给变量或作为参数传递给其他函数。
例如:

int add(int a, int b) {
  return a + b;
}
void main()  {
  add(1, 2); //return 3
}

函数只有一行表达式的,可以使用尖头语法简写成:

int add(int a, int b) => a + b;
void main()  {
  add(1, 2); //return 3
}
可选参数函数

Dart定义可选参数有两种方式一种使用{}, 另一种使用[]。区别就是, 如果用{}声明,在使用时必须带着参数名,如:a:123;如果用[]声明,在使用时需要按照顺序使用。

int add1(int a, {int b, int c})  {
  return a + b + c ;
}
int add2(int a, [int b, int c]) {
  return a + b + c;
}
void main()  {
  add1(1, b:2); //return 3
  add1(1, c:3); //return 4
  add1(1, b:2, c:3); //return 6

  add2(1); //return 3
  add2(1, 2); //return 3
  add2(1, 2, 3); //return 6
}

关于函数的更多内容,可参考Dart官网关于functions的介绍。

异步编程

Futures

Dart是一个单线程编程语言。如果任何代码阻塞线程执行都会导致程序卡死。异步编程防止出现阻塞操作。Dart使用Future对象表示异步操作。

void main() {
   _getIPAddress() {
    final url = 'https://httpbin.org/ip';
    HttpRequest.request(url).then((value) {
      String ip = json.decode(value.responseText)['origin'];
      print(ip);
    }).catchError((error) => print(error));
  }
  _getIPAddress();
}
async和await

在Dart中,async函数返回一个Future,函数的主体稍后执行。await运算符用于等待Future

_getIPAddress() {
   final url = 'https://httpbin.org/ip';
   var request = await  HttpRequest.request(url);
   String ip = json.decode(request.responseText)['origin'];
   print(ip);
 }

关于函数的更多内容,可参考Dart官网关于async and await的介绍

相关文章

  • dart入门潜修系列教程

    dart入门潜修基础篇之基本语法和内置类型dart入门潜修基础篇之方法dart入门潜修基础篇之操作符dart入门潜...

  • Dart入门—基础类型与正则-转

    Dart入门—基础类型与正则

  • Flutter - 入门

    Dart基础 如果你有JS、Java、Kotlin、Swift等语言的基础,入门几乎没啥子难度 程序入口 dart...

  • Dart 语言入门 (四)

    Dart 语言系列 Dart 语言入门 (一) Dart 语言入门 (二) Dart 语言入门 (三) Dart ...

  • Dart 语言入门 (六) - Exceptions

    Dart 语言系列 Dart 语言入门 (一) Dart 语言入门 (二) Dart 语言入门 (三) Dart ...

  • Dart 语言入门 (五)

    Dart 语言系列 Dart 语言入门 (一) Dart 语言入门 (二) Dart 语言入门 (三) Dart ...

  • Dart编程语言入门

    Dart基础入门语法介绍,详细说明可以查看相关视频《Dart编程语言入门》。 变量与常量 变量 1.使用var声明...

  • Dart基础入门

    Flutter应用是采用Dart语言来编写,在学习Flutter之前,我们有必要先学习一下Dart语言。Dart是...

  • Dart—基础入门

    1.Dart入门?一篇文章就够了! 网址:https://www.jianshu.com/p/da52181af...

  • Dart - 基础入门

    基础入门 由于本教程需要具有一定开发经验的阅读者才可以真正理解,因此建议阅读者在向下学习前先掌握以下基础技能: 基...

网友评论

      本文标题:Dart基础入门

      本文链接:https://www.haomeiwen.com/subject/simcuhtx.html