返回顶部
首页 > 资讯 > 后端开发 >Android开发Dart语言7个很酷的特点
  • 166
分享到

Android开发Dart语言7个很酷的特点

dart语言dartAndroid 2022-06-07 20:06:19 166人浏览 独家记忆
摘要

目录参考正文Cascade 级联Abstract 抽象类Factory constructors 工厂建造者Named 命名构造函数Mixins 混合物TypedefsExte

目录

参考

正文

Cascade 级联

Abstract 抽象类

Factory constructors 工厂建造者

Named 命名构造函数

Mixins 混合物

Typedefs

Extension 扩展方法

unawaited_futures

参考

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

正文

今天的文章简短地揭示了 Dart 语言所提供的很酷的特性。更多时候,这些选项对于简单的应用程序是不必要的,但是当你想要通过简单、清晰和简洁来改进你的代码时,这些选项是一个救命稻草。

考虑到这一点,我们走吧。

Cascade 级联

Cascades (.., ?..) 允许你对同一个对象进行一系列操作。这通常节省了创建临时变量的步骤,并允许您编写更多流畅的代码。

var paint = Paint();
paint.color = Colors.black;
paint.strokeCap = StrokeCap.round;
paint.strokeWidth = 5.0;
//above block of code when optimized
var paint = Paint()
  ..color = Colors.black
  ..strokeCap = StrokeCap.round
  ..strokeWidth = 5.0;
Abstract 抽象类

使用 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 constructors 工厂建造者

在实现不总是创建类的新实例的构造函数时使用 factory 关键字。

class Logger {
  String name;
  Logger(this.name);
  factory Logger.fromJSON(Map<String, Object> json) {
    return Logger(json['name'].toString());
  }
}
Named 命名构造函数

使用命名构造函数为一个类实现多个构造函数或者提供额外的清晰度:

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;
}
Mixins 混合物

Mixin 是在多个类层次结构中重用类代码的一种方法。

要实现 implement mixin,创建一个声明没有构造函数的类。除非您希望 mixin 可以作为常规类使用,否则请使用 mixin 关键字而不是类。

若要使用 mixin,请使用后跟一个或多个 mixin 名称的 with 关键字。

若要限制可以使用 mixin 的类型,请使用 on 关键字指定所需的超类。

class Musician {}
//creating a mixin
mixin Feedback {
  void boo() {
    print('boooing');
  }
  void clap() {
    print('clapping');
  }
}
//only classes that extend or implement the Musician class
//can use the mixin Song
mixin 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 names
class 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();
}
Typedefs

类型别名ー是指代类型的一种简明方式。通常用于创建在项目中经常使用的自定义类型。

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 parameters
typedef ListMapper<X> = Map<X, List<X>>;
Map<String, List<String>> m1 = {}; // normal way.
ListMapper<String> m2 = {}; // Same thing but shorter and clearer.
Extension 扩展方法

在 Dart 2.7 中引入的扩展方法是一种向现有库和代码中添加功能的方法。

//extension to convert a string to a number
extension 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);
}
unawaited_futures

当您想要启动一个 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语言7个很酷的特点的详细内容,更多关于Android开发Dart特点的资料请关注编程网其它相关文章!


--结束END--

本文标题: Android开发Dart语言7个很酷的特点

本文链接: https://lsjlt.com/news/30561.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android开发Dart语言7个很酷的特点
    目录参考正文Cascade 级联Abstract 抽象类Factory constructors 工厂建造者Named 命名构造函数Mixins 混合物TypedefsExte...
    99+
    2022-06-07
    dart语言 dart Android
  • Android开发中Dart语言7个很酷的特点
    目录参考正文Cascade 级联Abstract 抽象类Factory constructors 工厂建造者Named 命名构造函数Mixins 混合物TypedefsExtensi...
    99+
    2024-04-02
  • Android开发Dart语言的特点有哪些
    本篇内容主要讲解“Android开发Dart语言的特点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Android开发Dart语言的特点有哪些”吧!Cascade 级联Cascades (...
    99+
    2023-06-30
  • 3.python开发语言的特点
    python开发语言的特点 python作为一门高级编程语言,它的诞生虽然很偶然,但是它得到程序员的喜爱却是必然之路。 Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门...
    99+
    2023-01-31
    语言 python
  • 7个很棒的Vue开发技巧分享
    目录1.路由参数解耦2.功能组件3.样式范围4.watch的高级使用5.watch监听多个变量6.事件参数$event7.程序化事件监听器1.路由参数解耦 通常在组件中使用路由参数,...
    99+
    2023-02-08
    Vue开发技巧 Vue技巧
  • Go语言的服务端开发特点与优势
    Go语言(也称为Golang)是一种由Google开发的编程语言,它被设计成一种简洁、高效和并发性强的编程语言。在服务端开发中,Go语言有着许多独特的特点和优势。本文将探讨Go语言在服...
    99+
    2024-04-02
  • 探索Go语言在软件开发中的优势和特点
    Go语言(也称为Golang)是一种开源的静态类型编程语言,由Google开发并于2009年首次发布。自问世以来,Go语言在软件开发领域备受青睐,它具有许多独特的优势和特点,使其成为众...
    99+
    2024-03-10
    软件开发 go语言 特点
  • 理解Go语言在软件开发中的优势和特点
    标题:深入探讨Go语言在软件开发中的优势和特点 Go语言作为一种高效、简洁、并发性强的编程语言,近年来在软件开发领域中的应用越来越广泛。本文将介绍Go语言在软件开发中的优势和特点,并结...
    99+
    2024-04-02
  • 分享10个很棒的学习Android开发的网站
    我推荐的网站,都是我在学习Android 开发过程中发现的好网站,给初学者一些建议,少走一些弯路。 Android Developers 作为一个Android 开发者,官网...
    99+
    2022-06-06
    android开发 Android
  • 利用Go语言开发软件的优势及特点有哪些?
    利用Go语言开发软件的优势及特点有哪些? Go语言作为一种新兴的编程语言,在软件开发领域逐渐崭露头角。它具有许多优势和特点,使得开发人员越来越喜欢使用Go语言进行软件开发。本文将从四个...
    99+
    2024-04-02
  • Go语言的发展历程与特点解析
    Go语言的发展历程与特点解析 作为一门由Google开发并于2009年正式发布的编程语言,Go语言(也称为Golang)在近几年来逐渐崭露头角,成为众多开发者的首选语言之一。本文将从其...
    99+
    2024-04-02
  • Go语言开发的核心特性解析
    Go语言作为一种开源的静态类型编程语言,在近年来得到了越来越多开发者的关注和应用。其简洁、高效、并发安全等特性使得Go语言在大规模分布式系统和云计算领域有着广泛的应用。本文将深入解析G...
    99+
    2024-04-02
  • vue基于哪个语言开发的
    这篇文章将为大家详细讲解有关vue基于哪个语言开发的,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。vue是基于JavaScript语言开发的,是一套用于构建用户界面的渐进...
    99+
    2024-04-02
  • python是由哪个语言开发的
    小编给大家分享一下python是由哪个语言开发的,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!python有哪些常用库python常用的库:1.requesuts...
    99+
    2023-06-14
  • 深度探索Go语言并发编程的特点
    深入剖析Go语言的并发编程特点 Go语言是一门由Google开发的编程语言,其设计的一个重要特点就是原生支持并发编程。在现代计算机系统中,多核处理器和分布式系统已经成为常态,因此,对于一个编程语言来说,实现高...
    99+
    2024-01-23
  • 提升开发效率:探索Go语言Web框架的种类与特点
    提升开发效率:探索Go语言Web框架的种类与特点 引言 随着互联网技术的飞速发展,Web开发已成为当今IT行业中最为热门的方向之一。在Web开发中,选择合适的编程语言和Web框架,对于...
    99+
    2024-04-02
  • PHP语言在网页开发中的优缺点
    这篇文章主要介绍“PHP语言在网页开发中的优缺点”,在日常操作中,相信很多人在PHP语言在网页开发中的优缺点问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP语言在网页开发中的优缺点”的疑惑有所帮助!接下来...
    99+
    2023-06-17
  • 如何用Go语言开发一个简单的在线点评系统
    如何用Go语言开发一个简单的在线点评系统引言:随着互联网的快速发展,人们越来越依赖线上点评系统来选择餐厅、酒店、景点等。这种系统可以帮助用户了解其他用户对某个地方的评价,为他们做出决策提供参考。本文将介绍如何用Go语言开发一个简单的在线点评...
    99+
    2023-11-20
    Go语言 简单开发 在线点评系统
  • 如何用Go语言开发一个简单的在线点餐系统
    如何用Go语言开发一个简单的在线点餐系统随着移动互联网的快速发展,人们的生活越来越趋于便利和高效。其中,在线点餐系统成为了现代人们喜欢的一种服务方式。本文将介绍如何利用Go语言开发一个简单的在线点餐系统。一、系统需求分析开发一个在线点餐系统...
    99+
    2023-11-20
    在线点餐系统 简单 关键词:Go语言
  • 利用Go语言开发上门做菜系统的菜品点赞功能有哪些特点?
    利用Go语言开发上门做菜系统的菜品点赞功能有哪些特点?在现代社会中,随着生活节奏的加快,越来越多的人选择让专业厨师上门为他们烹饪美食。为了满足这一需求,我们可以利用Go语言开发一个上门做菜系统。而在这个系统中,菜品点赞功能是非常重要的一部分...
    99+
    2023-11-01
    展示给其他用户。
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作