首页 > 其他分享 >Flutter(四):Flutter 语言 Dart基础使用

Flutter(四):Flutter 语言 Dart基础使用

时间:2022-10-08 11:02:21浏览次数:48  
标签:语言 object Dart file import print lib2 dart Flutter

一、变量和常量

变量

var a = 1;
var str = 'abc';

常量

const PI = 3.14;

不可变对象

final PI = 3.14;
final TIME = new DateTime.now()

二、流程控制语句

if (year >= 2001) {
  print('21st century');
} else if (year >= 1901) {
  print('20th century');
}

for (final object in flybyObjects) {
  print(object);
}

for (int month = 1; month <= 12; month++) {
  print(month);
}

while (year < 2016) {
  year += 1;
}

三、函数

标准

int fibonacci(int n) {
  if (n == 0 || n == 1) return n;
  return fibonacci(n - 1) + fibonacci(n - 2);
}

var result = fibonacci(20);

简写 =>

flybyObjects.where((name) => name.contains('turn')).forEach(print);

四、注释

/// 这是一个文档注释。
/// 文档注释用于为库、类以及类的成员添加注释。
/// 像 IDE 和 dartdoc 这样的工具可以专门处理文档注释。

/* 也可以像这样使用单斜杠和星号的注释方式 */

五、导入( Import )

标准

// Importing core libraries
import 'dart:math';

// Importing libraries from external packages
import 'package:test/test.dart';

// Importing files
import 'path/to/my_other_file.dart';

指定库前缀(解决代码库冲突)

import 'package:lib1/lib1.dart';
import 'package:lib2/lib2.dart' as lib2;

// Uses Element from lib1.
Element element1 = Element();

// Uses Element from lib2.
lib2.Element element2 = lib2.Element();

导入库的一部分

// Import only foo.
import 'package:lib1/lib1.dart' show foo;

// Import all names EXCEPT foo.
import 'package:lib2/lib2.dart' hide foo;

六、类( Class )

普通

class Spacecraft {
  String name;
  DateTime? launchDate;

  // Read-only non-final property
  int? get launchYear => launchDate?.year;

  // Constructor, with syntactic sugar for assignment to members.
  Spacecraft(this.name, this.launchDate) {
    // Initialization code goes here.
  }
  
  // Method.
  void describe() {
    // code doing
  }
}

继承

// 继承
class Orbiter extends Spacecraft {
  double altitude;

  Orbiter(super.name, DateTime super.launchDate, this.altitude);
}

抽象类

abstract class Describable {
  void describe();

  void describeWithEmphasis() {
    print('=========');
    describe();
    print('=========');
  }
}

Mixins

Mixin 是一种复用多个类之间的代码,减少耦合。下面的是声明一个 Mixin 的做法:

mixin Piloted {
  int astronauts = 1;

  void describeCrew() {
    print('Number of astronauts: $astronauts');
  }
}

class PilotedCraft extends Spacecraft with Piloted {
  // ···
}

可以将多个mixins放入同一个类中,而且dart对这个数量没有作任何限制。

七、接口

Dart 没有 interface 关键字。相反,所有的类都隐式定义了一个接口。因此,任意类都可以作为接口被实现。

class MockSpaceship implements Spacecraft {
  // ···
}

八、枚举(Enums)

enum PlanetType { terrestrial, gas, ice }

九、异常(try/catch)

try {
  for (final object in flybyObjects) {
    var description = await File('$object.txt').readAsString();
    print(description);
  }
} on IOException catch (e) {
  print('Could not describe object: $e');
} finally {
  flybyObjects.clear();
}

异步(async/await )

Future<void> createDescriptions(Iterable<String> objects) async {
  for (final object in objects) {
    try {
      var file = File('$object.txt');
      if (await file.exists()) {
        var modified = await file.lastModified();
        print(
            'File for $object already exists. It was modified on $modified.');
        continue;
      }
      await file.create();
      await file.writeAsString('Start describing $object in this file.');
    } on IOException catch (e) {
      print('Cannot create description for $object: $e');
    }
  }
}

标签:语言,object,Dart,file,import,print,lib2,dart,Flutter
From: https://www.cnblogs.com/anywherego/p/16768287.html

相关文章

  • 论人类下一代语言的可能—2.2符号结果与符号方式
    上一节的论述还是在讨论语言吗?其内容显然超出了传统语言学的范畴,论述看上去更像是在讨论逻辑、数学、科学。这就涉及对语言的定义。语言学家由所持观点的不同分成了多个大......
  • C语言每日一题——第十一天
    第十一天还记得在第三天写的斐波那契数列程序吗?小明最初想用这个函数作为随机数生成器的。今天,小明决定重新拾起这个函数,用于生成随机数……输入程序在运行时通过getcha......
  • C语言:随机出题
    #include<stdio.h>//为小学一年级学生随机出10道题,加法或减法随机出现,保证涉及到的数在0-9之间,结果不能出现负数//程序运行输入结果后提示对或错,最后并统计做对了几道......
  • 【Golang】关于Go语言中条件变量 sync.Cond
    一、sync.Cond的使用场景一句话总结:sync.Cond 条件变量用来协调想要访问共享资源的那些goroutine,当共享资源的状态发生变化的时候,它可以用来通知被互斥锁阻塞的gorou......
  • 【SQL数据库】(三)SQL查询语言
    三.SQL查询语言3.1SQL概述标准SQL语句包括:查询SELECT、插入INSERT、修改UPDATE、删除DELETE、创建CREATE、删除DROP... 3.1.1SQL发展1.发展过程(略)2.SQL语......
  • 实现进制转化伪代码的C语言转化
    #include<stdio.h>intmain(){  intx,p;  printf("Enterthenewbase");  scanf("%d",&p);  printf("Enterthenumbertobeconverted"); ......
  • 【C语言】初始数组
    ......
  • 初探C语言第三天
    选择结构程序设计if语句1.if(判断条件)执行动作;或if(判断条件){执行动作超过一个} 这次没有;​2.if(判断条件)语句1;else 语句2;3.嵌套条件句注意else和上面最接近的if配对,如若有......
  • 你帮我助”软件开发 (以python为程序语言)
    在疫情期间,各个小区居民发挥互助精神,进行物品交换,互通有无。请你编写一个物品交换软件该程序允许添加物品的信息,删除物品的信息,显示物品列表,也允许查找物品的信息你实现......
  • Flutter 实现登录 UI
    本文,我将解析怎么前构建一个用户交互的登录页面。这里,我使用​​TextField​​​挂件,这方便用户输入用户名和密码。还使用​​FlatButton​​​挂件,来处理一些动作。当......