Flutter(三)——一篇文章掌握Dart语言的用法(二)

简介: Flutter(三)——一篇文章掌握Dart语言的用法(二)

运算符


(1)三目运算符


在上面类型介绍中,我们已经介绍了一些运算符,这里我们介绍上面没有提及的运算符,以及一些要注意的事项,首先,就是Dart语言的三目运算符,这个相当的重要,经常与flutter中的state状态管理结合使用,来判断组件的状态,用法如下:

expr1 ?? expr2//如果expr1非空,则返回expr1,否则返回expr2

我们在来看一个与Java类似的用法:

int a=20;
var va1=a>10 ? a : 0;


(2)~/


细心的读者,应该看到博文上面提到了一个~/运算符,这个是返回一个整数结果,取商,使用方式如下:

var va1=12~/7;
print(va1);//打印出来的是1


(3)级联操作符


这个有点类似一些语言的链式调用,使用过Java和JavaScript应该见的非常多,使用方式如下:

String str=(new StringBuffer()
  ..write('Li ')
  ..write('Yuan ')
  ..write('Jing').toString());
print(str);//会打印除Li Yuan Jing


(4)as,is和is!


as:判断属于某种类型


is:如果对象具有指定类型,则为True


is!:如果对象具有指定类型,则为False


异常捕获

要说Dart语言有什么特殊的强大功能,我想捕获异常真的是非常的好用,比Java还要强大,我们先来看一段代码:

throw Exception('我是异常');

我们不仅仅需要抛出异常,还要捕获异常,所以在Dart语言中,捕获异常的详细代码如下:

try{
//捕获特定类型异常
}on AuthorizationException catch(e){
//捕获特定类型异常,但不要这个对象
}on Exception{
//捕获所有异常
}catch(e){
//....
}finally{
//....
}


函数Function

Dart语言是一门面向对象语言,所以函数也是对象,并且函数的类型是Function。这点和JavaScript非常相似。在JavaScript里面Function是可以作为参数传递的,在Flutter里面,也不例外,即函数可以分配给变量或作为参数传递给其他函数,定义函数的代码如下:

bool getName(name){
  return name;
}


main函数

没有应用程序都必须有一个顶层main函数,作为程序的入口,这一点和Java一样,它是应用程序的入口点。该函数返回void并具有List的可选参数。第二篇我们讲解过源码,入口函数就是这样:

void main()=>runApp(MyApp());

可选参数与必传递参数

定义可选参数的函数,顾名思义,就是不传这些参数也可以调用函数,例如:

void getName({String name,int age}){
}


这里可以传递一个,也可以传递二个,也可以一个都不传递。那么必传递该怎么写呢?我们直接上代码:

void getName({@required String name,@required int age}){
}


必传参数用@required修饰,在Dart语言中,使用@required有利于静态代码分析器进行检查。


可选的位置参数

一个函数里面即包含可选参数,也包含必选参数,我们需要这样写:

void getName({String name,int age,[String school]}){
  if(school!=null){
  print('学校是$school');
  }
}


默认参数

默认参数是编译时的常量,在函数的参数后面,使用“=”为参数赋值,这个有一点像JavaScript里的ES6特性,例如:


void getName({String name='李元静',int age=27}){
}


函数作为参数传递

既然我们开头提到了函数可以作为参数传递,我们不妨直接上代码理解:

void getName(String name){
  print(name);
}
var names=['小静','小尧','小帆'];
names.forEach(getName);


函数作为变量

函数也可以直接赋值给一个变量,并且把这个变量作为函数来调用,代码如下:

var printName=(name){
  print(name);
};
printName('Li YuanJing');
相关文章
|
3月前
|
监控 Dart 安全
创建一个Dart应用,监控局域网上网记录的软件:Flutter框架的应用
在当今数字时代,网络安全变得愈发重要。为了监控局域网上的上网记录,我们可以借助Flutter框架创建一个强大的Dart应用。在这篇文章中,我们将深入讨论如何使用Flutter框架开发这样一个监控局域网上网记录的软件,并提供一些实用的代码示例。
271 1
|
2月前
|
Dart JavaScript
Flutter - Dart 基础(数据类型)
【2月更文挑战第3天】
31 1
|
2月前
|
Dart JavaScript 安全
|
2月前
|
Dart Shell 开发工具
解决windows安装Flutter时出现Unknown operating system. Cannot install Dart SDK.问题
解决windows安装Flutter时出现Unknown operating system. Cannot install Dart SDK.问题
|
3月前
|
JSON Dart 算法
Dart/Flutter工具模块:the_utils
Dart/Flutter工具模块:the_utils
46 0
|
3月前
|
Dart 小程序 前端开发
WebSocket 解析与应用(包含web前端、服务端、小程序、dart/flutter中的用法)
WebSocket 解析与应用(包含web前端、服务端、小程序、dart/flutter中的用法)
185 0
|
4月前
|
Dart 开发者
Flutter入门之Dart中的并发编程、异步和事件驱动详解
Flutter入门之Dart中的并发编程、异步和事件驱动详解 Dart是一种高效、快速、灵活且用于Web和移动应用程序开发的编程语言。在Dart中,支持并发编程、异步和事件驱动等特性,这些特性使得Dart在处理诸如网络请求、文件I/O、用户输入等方面表现出色。本文将详细介绍Dart中的这些特性。
|
4月前
|
开发框架 Java 开发者
Flutter特殊用法介绍
Flutter特殊用法介绍 Flutter是一种开源移动应用程序开发框架,具有高效、快速、美观、灵活等特点。本文将介绍Flutter中的一些特殊用法,帮助开发者更好地使用Flutter进行应用程序开发。
|
5月前
|
Dart
通义灵码请问啥时候支持flutter或dart
通义灵码请问啥时候支持flutter或dart
255 1
|
6月前
|
Dart API Android开发
带你读《深入浅出Dart》二十二、Flutter简介
带你读《深入浅出Dart》二十二、Flutter简介