当前位置: 首页 > wzjs >正文

九江网站建设优化专注网络营销推广公司

九江网站建设优化,专注网络营销推广公司,网站栏目做跳转后不显示,用jsp做的动态网站关于作者: CSDN内容合伙人、技术专家, 从零开始做日活千万级APP,带领团队单日营收超千万。 专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业化变现、人工智能等,希望大家多多支持。 目录 一、导读二、概览三、简介3.1 var 关键字3.2 dynamic 和 Object3.3 fi…

关于作者: CSDN内容合伙人、技术专家, 从零开始做日活千万级APP,带领团队单日营收超千万。
专注于分享各领域原创系列文章 ,擅长java后端、移动开发、商业化变现、人工智能等,希望大家多多支持。

目录

  • 一、导读
  • 二、概览
  • 三、简介
    • 3.1 var 关键字
    • 3.2 dynamic 和 Object
    • 3.3 final 和 const
    • 3.4 空安全(null-safety)
    • 3.5 函数声明
    • 3.6 函数作为变量
    • 3.7 函数作为参数
    • 3.8 可选的位置参数
    • 3.9 可选的命名参数
    • 3.10 mixin
  • 四、Future 异步支持
    • 4.1 Future.then
    • 4.2 Future.catchError
    • 4.3 Future.whenComplete
    • 4.4 Future.wait
    • 4.5 async/await
  • 五、 Stream
  • 六、 推荐阅读

在这里插入图片描述

一、导读

我们继续总结学习flutter基础知识,温故知新。

本文主要介绍dart语言的基础知识。

二、概览

Dart 在静态语法方面和 Java 非常相似,如类型定义、函数声明、泛型等,
而在动态特性方面又和 JavaScript 很像,如函数式特性、异步支持等。
除了融合 Java 和 JavaScript 语言之所长之外,Dart 也具有一些其他很有表现力的语法,
如可选命名参数、…(级联运算符)和?.(条件成员访问运算符)以及??(判空赋值运算符)

三、简介

Dart 本身是一个强类型语言,任何变量都是有确定类型的

3.1 var 关键字

Dart 中 var 关键字,可以声明一个变量,并赋予一个初始值,

可以接收任何类型的变量,Dart 中 var 变量一旦赋值,类型便会确定,则不能再改变其类型

var t = "hi world";
// 下面代码在dart中会报错,因为变量t的类型已经确定为String,
// 类型一旦确定后则不能再更改其类型。
t = 1000;

对于变量的声明,也可显式的声明类型,比如:

var name = 'Alice'; // 自动推断类型为 String
int age = 25;       // 显式声明类型

3.2 dynamic 和 Object

dynamic 和 Object可以声明一个变量,并赋予一个初始值

Dart 中所有类型都是Object的子类(包括Function和Null),所以任何类型的数据都可以赋值给Object声明的对象。

dynamic与Object声明的变量都可以赋值任意对象,且后期可以改变赋值的类型

dynamic t;              //声明的对象编译器会提供所有可能的组合
Object x;               //声明的对象只能使用 Object 的属性与方法, 否则编译器会报错
t = "hi world";
x = 'Hello Object';
//下面代码没有问题
t = 1000;
x = 1000;

dynamic 的这个特点使得我们在使用它时需要格外注意,这很容易引入一个运行时错误,比如下面代码在编译时不会报错,而在运行时会报错:

print(a.xx);           // a是字符串,没有"xx"属性,编译时不会报错,运行时会报错

3.3 final 和 const

final 关键字声明的变量,只能被赋值一次,且类型不能改变,
const 关键字声明的变量,只能被赋值一次,且类型不能改变,且编译时确定,不能在运行时改变。

//可以省略String这个类型声明
final str = "hi world";
//final String str = "hi world"; const str1 = "hi world";
//const String str1 = "hi world";

3.4 空安全(null-safety)

int i = 8; //默认为不可空,必须在定义时初始化。
int? j; // 定义为可空类型,对于可空变量,我们在使用前必须判空。// 如果我们预期变量不能为空,但在定义时不能确定其初始值,则可以加上late关键字,
// 表示会稍后初始化,但是在正式使用它之前必须得保证初始化过了,否则会报错
late int k;
k=9;

如果一个变量我们定义为可空类型,在某些情况下即使我们给它赋值过了,
但是预处理器仍然有可能识别不出,这时我们就要显式(通过在变量后面加一个”!“符号)告诉预处理器它已经不是null了,比如:

class Test{int? i;Function? fun;say(){if(i!=null) {print(i! * 8); //因为已经判过空,所以能走到这 i 必不为null,如果没有显式申明,则 IDE 会报错}if(fun!=null){fun!(); // 同上}}
}

上面中如果函数变量可空时,调用的时候可以用语法糖:

fun?.call() // fun 不为空时则会被调用

3.5 函数声明

Dart是一种真正的面向对象的语言,所以即使是函数也是对象,并且有一个类型Function。
这意味着函数可以赋值给变量或作为参数传递给其他函数,这是函数式编程的典型特征。

bool isNoble(int atomicNumber) {return _nobleGases[atomicNumber] != null;
}// 对于只包含一个表达式的函数,可以使用简写语法:
bool isNoble (int atomicNumber)=> true ;// Dart函数声明如果没有显式声明返回值类型时会默认当做dynamic处理
// 不指定返回类型,此时默认为dynamic,不是bool
isNoble(int atomicNumber) {return _nobleGases[atomicNumber] != null;
}

typedef bool CALLBACK();//不指定返回类型,此时默认为dynamic,不是bool
isNoble(int atomicNumber) {return
http://www.dtcms.com/wzjs/198361.html

相关文章:

  • 造林seo网络排名优化哪家好
  • 有什么电商网站做推广赚佣金的搜狗站长推送工具
  • 秦皇岛市网站制作公司seo分析是什么意思
  • 建筑建材网站建设搜狗提交入口网址
  • 煤棚网架多少钱一平方seo还有未来吗
  • 郑州 手机网站制作百度一下电脑版网页
  • 做二手货的网站有哪些seo关键词排名优化手机
  • 钓鱼网站后台是怎么做的百度客服电话人工服务
  • 政府网站建设规划署优化网站有哪些方法
  • 租用网站空间百度合伙人答题兼职赚钱
  • 网站开发的app轻松seo优化排名 快排
  • 贵州网站制作公司网络建站
  • 推广链接怎么做宁波seo基础入门
  • 临安营销型网站建设网络测试
  • 潍坊疫情最新消息今天新增病例手机系统优化
  • 做不好的网站违法吗福建seo快速排名优化
  • 做免费的小说网站可以赚钱吗seo优化入门教程
  • 山东菏泽网站建设湖南靠谱seo优化报价
  • 知名网站建设开发网站地址ip域名查询
  • 源码资源下载站广东优化疫情防控措施
  • 用adsl做网站备案湖南网络优化
  • 有网站代码怎么建站google下载安装
  • 工信部2017网站备案百度推广seo自学
  • 网站建设面对的问题汉中网站seo
  • 网站积分商城该怎么建立哪些浏览器可以看禁止访问的网站
  • 网站怎样做优化昆明百度推广开户
  • 营销型网站建设实战》58同城推广效果怎么样
  • 中企动力网站建设方案西安做seo的公司
  • 效果好的免费网站建设外贸推广平台哪家好
  • 做网贷网站百度竞价排名叫什么