本篇内容主要讲解“Android开发dart语言的特点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android开发Dart语言的特点有哪些”吧!Cascade 级联Cascades (
本篇内容主要讲解“Android开发dart语言的特点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android开发Dart语言的特点有哪些”吧!
Cascades (.., ?..) 允许你对同一个对象进行一系列操作。这通常节省了创建临时变量的步骤,并允许您编写更多流畅的代码。
var paint = Paint();paint.color = Colors.black;paint.strokeCap = StrokeCap.round;paint.strokeWidth = 5.0;//above block of code when optimizedvar paint = Paint() ..color = Colors.black ..strokeCap = StrokeCap.round ..strokeWidth = 5.0;
使用 abstract 修饰符定义一个 _abstract 抽象类(无法实例化的类)。抽象类对于定义接口非常有用,通常带有一些实现。
// This class is declared abstract and thus// can't be instantiated.abstract class AbstractContainer { // Define constructors, fields, methods... void updateChildren(); // Abstract method.}
在实现不总是创建类的新实例的构造函数时使用 factory 关键字。
class Logger { String name; Logger(this.name); factory Logger.fromJSON(Map<String, Object> json) { return Logger(json['name'].toString()); }}
使用命名构造函数为一个类实现多个构造函数或者提供额外的清晰度:
class Points { final double x; final double y; //unnamed constructor Points(this.x, this.y); // Named constructor Points.origin(double x,double y) : x = x, y = y; // Named constructor Points.destination(double x,double y) : x = x, y = y;}
Mixin 是在多个类层次结构中重用类代码的一种方法。
要实现 implement mixin,创建一个声明没有构造函数的类。除非您希望 mixin 可以作为常规类使用,否则请使用 mixin 关键字而不是类。
若要使用 mixin,请使用后跟一个或多个 mixin 名称的 with 关键字。
若要限制可以使用 mixin 的类型,请使用 on 关键字指定所需的超类。
class Musician {}//creating a mixinmixin Feedback { void boo() { print('boooing'); } void clap() { print('clapping'); }}//only classes that extend or implement the Musician class//can use the mixin Songmixin Song on Musician { void play() { print('-------playing------'); } void stop() { print('....stopping.....'); }}//To use a mixin, use the with keyWord followed by one or more mixin namesclass PerfORMSong extends Musician with Feedback, Song { //Because PerformSong extends Musician, //PerformSong can mix in Song void awesomeSong() { play(); clap(); } void badSong() { play(); boo(); }}void main() { PerformSong().awesomeSong(); PerformSong().stop(); PerformSong().badSong();}
类型别名ー是指代类型的一种简明方式。通常用于创建在项目中经常使用的自定义类型。
typedef IntList = List<int>;List<int> i1=[1,2,3]; // normal way.IntList i2 = [1, 2, 3]; // Same thing but shorter and clearer.//type alias can have type parameterstypedef ListMapper<X> = Map<X, List<X>>;Map<String, List<String>> m1 = {}; // normal way.ListMapper<String> m2 = {}; // Same thing but shorter and clearer.
在 Dart 2.7 中引入的扩展方法是一种向现有库和代码中添加功能的方法。
//extension to convert a string to a numberextension NumberParsing on String { int customParseInt() { return int.parse(this); } double customParseDouble() { return double.parse(this); }}void main() { //various ways to use the extension var d = '21'.customParseDouble(); print(d); var i = NumberParsing('20').customParseInt(); print(i);}
可选的位置参数
通过将位置参数包装在方括号中,可以使位置参数成为可选参数。可选的位置参数在函数的参数列表中总是最后一个。除非您提供另一个默认值,否则它们的默认值为 null。
String joinWithCommas(int a, [int? b, int? c, int? d, int e = 100]) { var total = '$a'; if (b != null) total = '$total,$b'; if (c != null) total = '$total,$c'; if (d != null) total = '$total,$d'; total = '$total,$e'; return total;}void main() { var result = joinWithCommas(1, 2); print(result);}
当您想要启动一个 Future 时,建议的方法是使用 unawaited
否则你不加 async 就不会执行了
import 'dart:async';Future doSomething() { return Future.delayed(Duration(seconds: 5));}void main() async { //the function is fired and awaited till completion await doSomething(); // Explicitly-ignored //The function is fired and forGotten unawaited(doSomething());}
到此,相信大家对“Android开发Dart语言的特点有哪些”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
--结束END--
本文标题: Android开发Dart语言的特点有哪些
本文链接: https://lsjlt.com/news/329472.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
2024-05-24
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0