Flutter 基础(零)Flutter环境安装 Dart基础语法

Flutter环境安装 Dart基础语法

1.Flutter 环境

2.Dart 语法

熟悉 Java 和 Kotlin 等语言的上手 Dart 应该很快,了解一下语法特性即可!

主要一些特有特点,更详细的内容请看末尾的官方文档

  • Dart 一切皆对象包括 int double 函数
  • Dart 有类型推断功能
  • Object 和 dynamic
  • 可选参数
  • Future
  • 多继承

1.基本类型

示例

void main(){

  bool isShow = false;
  int  count = 1;
  double height = 1.82;

  //类型推断
  var show = true;
  var counts = 10;
  var heights = 1.83;

  //跟 Java 中的final一样 在程序运行的时候赋值,赋值后值不再改变
  final money = 100000.01;

  //一个编译时常量,在程序编译的时候它的值就确定了
  const money2= 200000.01;

}

2.Object 和 dynamic

使用 Object 时,我们只是在说接受任意类型,我们需要的是一个 Object。类型系统会保证其类型安全。

使用 dynamic 则是告诉编译器,我们知道自己在做什么,不用做类型检测。当我们调用一个不存在的方法时,会执行 noSuchMethod() 方法,默认情况下(在 Object 里实现)它会抛出 NoSuchMethodError

3.可选参数

  • 可选命名参数
  • 可选位置参数
  • 可以提供默认值(默认参数) 类似于 Kotlin

示例

void main() {

  //可选命名参数
  choiceNameParams(param1: true, param2: '第二个参数');
  choiceNameParams(param1: false);
  choiceNameParams(param2: '第二个参数');

  //可选位置参数
  choicePositionParams('第一个参数', false, 10.0);
}

//可选命名参数
void choiceNameParams({bool param1=false, String param2 = '默认参数'}) {}

//可选位置参数
void choicePositionParams(String param1, [bool param2 = true, double param3 = 0.0]) {}

4.Future

Dart 是单线程的,主线程由一个事件循环来执行(类似 Android 的主线程)。对于异步代码,我们通过 Future 来获取结果

  • async await 关键字
  • 注意 有无await 会影响代码的执行顺序

示例

import 'package:flutter/material.dart';

void main() async{
 await getJoke().then((value) {
    debugPrint("value = $value");
  }).catchError((error) {
    debugPrint('error = $error');
  });
  debugPrint('end.....');
}

Future<String> getJoke() {
  return Future.delayed(Duration(seconds: 2),(){
    return 'this is a joke ';
  });
}

//Future<String> getJoke() {
//  return Future<String>(() {
//    throw new Exception('No joke for you');
//    return 'this is a joke ';
//  });
//}

//Future<String> getJoke() {
//  return Future<String>(() {
//    return 'this is a joke ';
//  });
//}

5.多继承

Dart是一个面向对象编程语言,支持基于Mixin的继承机制。Mixin可以理解为多继承,在with关键字的后面为一个或者多个类。

示例

//人
class Person {
  void run() {}
}
//中国人
class Chinese {
  void say() {}
}
//学习
class Learn {
  void learnMusic() {}
  void learnEnglish() {}
}
//胡歌
class Huge extends Chinese with Person ,Learn{
  @override
  say() {
    print('说汉语');
  }
}

void main() {
  var huge = Huge();
  huge.run();
  huge.say();
  huge.learnEnglish();
  huge.learnMusic();
}

源码地址

文章地址

参考资料

https://dart.dev/guides/language/language-tour#maps

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值