专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

Flutter从入门到精通之Dart语言这一篇就够了

  前言
  Dart是由Google主导开发,于2011年10月公开;它的开发团队由GoogleChrome浏览器V8引擎团队的领导者拉尔斯巴克主持,目标在于成为下一代结构化Web开发语言
  Dart也是一种面向对象语言,但是它采用基于类编程;Dart的设计目标应该是既对标Java,也对标JavaScript,Dart在静态语法方面和Java非常相似,如类型定义、函数声明、泛型等,而在动态特性方面又和JavaScript很像,如函数式特性、异步支持等,因此Flutter便成为了跨平台行业一个热点
  想要学习开发Flutter首先就要先了解Dart语言的基本概念Dart基本概念
  Dart是面向对象的语言,和许多面向对象语言有着很接近的语法,如果你学过C,C,Java那么你只需要很短的时间就可以掌握Dart,并且Dart语言具有以下几个特点:Dart是谷歌开发的开源的面向客户端的开发语言Dart可帮助开发者开发富有表现力的,高性能的客户端应用;它具有功能强大的框架,灵活易用的工具。客户端友好,非常适合开发移动和Web应用
  一个简单的Dart程序大概长这个样子:定义函数printInteger(intaNumber){print(ThenumberisaNumber。);打印输出}应用执行入口main(){varnumber42;声明和初始化变量printInteger(number);调用函数}Dart核心概念
  如果你要深入学习Dart请谨记以下这些核心概念:Dart中所有变量都是对象(object),每个对象都是某个类的实例,包括number,function,null以及object;所有的对象都继承自Object这个超类。Dart是强类型语言,尽管这样,声明变量也可以不指定变量类型Dart可以自动推断一个变量的类型,就像上面的例子变量nunber被自动推断为int类型如果一个变量不确定是何种类型或者可以接受任何类型,那么你可以使用特殊类型:dynamic来声明一个变量ReturnsaBooleanrepresentationfor〔arg〕,whichmustbeaStringorbool。boolconvertToBool(dynamicarg){if(argisbool)returnarg;if(argisString)returnargtrue;throwArgumentError(Cannotconvertargtoabool。);}Dart支持泛型,比如:List(int类型元素的数组)、List(包含可能任何object类型元素的集合)Dart支持顶级函数(例如main()),以及绑定到类或对象的函数(分别是静态和实例方法)你还可以在函数内创建函数(嵌套函数或本地函数)类似地,Dart支持顶级变量,以及绑定到类或对象的变量(静态和实例变量);实例变量有时称为字段或属性与Java,C等不同,Dart没有public,protected和private这些访问修饰符,私有变量或方法会以下划线()开头来表示Dart里的变量或标识符必须是以字母或下划线开头的字母、下划线、数字的组合注意区分表达式(expressionshaveruntimevalues)和语句(statementsdonthaveruntimevalues),;比如条件表达式:condition?expr1:expr2,会返回值expr1或expr2,比较下ifelse语句,不具有值;语句通常包含一个或多个表达式,但表达式不能直接包含语句Dart工具具有两种类型异常提醒:警告和错误;警告代表你的代码可能有问题,但是不会阻止程序的运行;错误分为编译错误和运行错误,前者会阻止程序的运行,后者则会在程序运行使抛出异常!
  我们可以把Dart中的类可分为两大类:泛型类和非泛型类先说非泛型类也就是开发中接触最多的一般类,一般的类去定义一个变量的时候,它的类实际就是这个变量的类型。例如定义一个Student类,我们会得到一个Student类型泛型类比非泛型类要更加复杂,实际上一个泛型类可以对应无限种类型。为什么这么说,其实很容易理解;在定义泛型类的时候会定义泛型形参,要想拿到一个合法的泛型类型就需要在外部使用地方传入具体的类型实参替换定义中的类型形参我们知道在Dart中List是一个类,它不是一个类型;由它可以衍生成无限种泛型类型。例如List、List、ListListnum、ListMapString,int何为子类型
  我们可能会经常在Flutter开发中遇到subtype子类型的错误:typeStringisnotasubtypeoftypenumofother。到底啥是子类型呢?它和子类是一个概念吗?
  首先给出一个数学归纳公式:如果G是一个有n个类型参数的泛型类,而A〔i〕是B〔i〕的子类型且属于1。。n的范围,那么可表示为GG的子类型,其中AB可表示A是B的子类型。
  我们一般说子类就是派生类,该类一般会继承它的父类(也叫基类);例如:classStudentextendsPerson{。。。},这里的Student一般称为Person的子类
  而子类型则不一样,我们从上面就知道一个类可以有很多类型,那么子类型不仅仅是想子类那样继承关系那么严格
  子类型定义的规则一般是这样的:任何时候如果需要的是A类型值的任何地方,都可以使用B类型的值来替换的,那么就可以说B类型是A类型的子类型或者称A类型是B类型的超类型Dart语言可选类型
  在Dart中的类型实际上是可选的,也就是在Dart中函数类型,参数类型,变量类型是可以直接省略的sum(a,b,c,d){函数参数类型和返回值类型可以省略returnabcd;}main(){print({sum(10,12,14,12)});正常运行}
  上述的sum函数既没有返回值类型也没有参数类型,可能有的人会疑惑如果sum函数最后一个形参传入一个String类型会是怎么样
  答案是:静态类型检查分析正常但是编译运行异常sum(a,b,c,d){returnabcd;}main(){print({sum(10,12,14,12312)});静态检查类型检查正常,运行异常}运行结果Unhandledexception:typeStringisnotasubtypeoftypenumofother请先记住这个子类型不匹配异常问题,因为在后面会详细分析子类型的含义,而且Dart、Flutter开发中会经常看到这个异常。Processfinishedwithexitcode255
  虽然,可选类型从一方面使得整个代码变得简洁以及具有动态性,但是从另一方面它会使得静态检查类型难以分析
  但是这也使得dart中失去了基于类型函数重载特性;我们都知道函数重载是静态语言中比较常见的语法特性,可是在dart中是不支持的
  比如在其他语言我们一般使用构造器重载解决多种方式构造对象的场景,但是dart不支持构造器重载,所以为了解决这个问题,Dart推出了命名构造器的概念;那可选类型语法特性为什么会和函数重载特性冲突呢?
  我们可以使用反证法,假设dart支持函数重载,那么可能就会有以下这段代码:classIllegalCode{overloaded(numdata){}overloaded(Listdata){假设支持函数重载,实际上这是非法的}}main(){vardata1100;vardata2〔100〕;由于dart中的类型是可选的,以下函数调用,根本就无法分辨下面代码实际上调用哪个overloaded函数。overloaded(data1);overloaded(data2);}
  如果仅从可选类型角度去考虑的话,实际上dart现在是可以支持基于类型的函数重载的,因为Dart有类型推导功能;如果dart能够推导出上述data1和data2类型,那么就可以根据推导出的类型去匹配重载的函数
  实际上,Dart官方在Github提到过Dart迁移到新的类型系统中,Dart是有能力支持函数重载的
  我们喜欢Flutter的一点是,它不仅仅是谷歌的产品它是一个所有人的产品;开源意味着我们都可以参与其中,并与它的成功息息相关,无论是通过贡献新的代码或文档,创建赋予核心框架新的超能力的包,编写教导他人的书籍和培训课程,还是帮助组织活动和用户组
  为了展示Flutter社区的最佳状态,我们最近与DevPost合作赞助了一个PuzzleHack挑战,为开发者提供了一个机会,通过用Flutter重新想象经典的滑动拼图来展示他们的技能;这证明了网络、桌面和移动的完美结合;现在我们都可以在线或通过商店玩这些游戏
  今天我们对FlutterDart语言的概述就到这里了,有需要了解更多关于Flutter的相关资讯;可以私信发送进阶,即可获取一份Fultter开源学习手册,以便大家能够更好的学习Fultter
  内容展示如下:Dart语法基础Dart语法详解编译原理Dart语言基础详解(变量、内置类型、函数、操作符、流程控制语句)Flutter(Dart)基础类的详解Dart初始化列表Dart的构造方法及属性(settergetter)Dart构造方法Dart的工厂构造方法Dart之Mixin详解
  Dart语法进阶Exception类型Error类型异常抛出异常捕获类泛型异步
  完整版Fultter开源学习手册获取方式:私信发送进阶即可直达获取Flutter3。0项目实战Flutter底部导航路由实现底部导航实现Widget属性说明Page存在重复创建的问题Flutter创建侧滑菜单个人中心制作简单个人中心商城会员中心Flutter实战APP入门及主页
  Flutter3。0线程Flutter事件队列应用场景实现思路具体实现asyncawait原理解析FutureDart的消息循环机制最常用的async和awaitPromise对象的基本用法Flutter多线程
  文章篇幅有限,知识点图片就不做完全展示了;有需要这份Fultter开源学习手册的朋友:可以私信发送进阶即可直达获取Fultter学习手册目录
  对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们
  技术是无止境的,你需要对自己提交的每一行代码、使用的每一个工具负责,不断挖掘其底层原理,才能使自己的技术升华到更高的层面
  最后祝各位开发者早日精通Flutter,攀登上更高的高峰

重磅征集中由世界互联网大会和浙江省人民政府主办的2022年世界互联网大会互联网之光博览会将于第四季度在中国浙江乌镇举行。2022年博览会首次开启线上线下同步展示,推出365天不落幕的线上云展蔚来不再是孤勇者,飞凡汽车正式入局换电赛道时至今日,补能效率依然是新能源车主最关注的问题,没有之一。而近年来,国内电动汽车换电模式初步成型,让用户体验到了更方便快捷的补能体验,比如蔚来汽车的换电模式。作为第一个吃螃蟹的车企蜂巢能源携手中伟股份正式进入电池回收领域蜂巢能源携手中伟股份正式进入电池回收领域科创板日报23日讯,科创板日报记者获悉,蜂巢能源与中伟股份合资成立的常青藤再生资源(上饶)有限公司(以下简称常青藤),在江西上饶正式启动。这彻底撕破脸!安东尼爆料2月份就明说要走!曼联可能再次报价据报道,在转会窗还剩几天的时候,如果曼联能以更高的报价再次报价,阿贾克斯可能会让安东尼离开俱乐部。曼联在夏天的大部分时间里一直在追逐这位巴西边锋,但他们的最新报价价值8000万欧元国美零售新模式店亮相,战略落地下的国美零售缘何再受资本关注?国美零售新模式店亮相,战略落地下的国美零售缘何再受资本关注?网上零售新零售即时零售资本市场一直关注零售业的商业形式和模式,因为整个零售业的市场太大,仅在今年8月,商品零售规模就达到电热水器市场走向下坡路?近来,空气源热泵在欧洲多国热销,一度引发市场关注,但国内市场因政策逐渐退出,该品类表现倒未有较大起伏。从规模来看,当下的国内热水器市场,依然是电热水器与燃气热水器两大品类的博弈。不一次出现8架,美国琢磨不透中国新战机,怎么解释都不通这两天美国好几个军事网站上,一些专业人员在分析一张卫星照片,分析的结果晕头转向。美国的这些网站说,卫星照片是在兰州附近一个军用机场拍摄的,显示在跑道上停着一大排战斗机,绝大多数是老横扫34C的节奏!这高智能中国车卖爆了4秒破百还不到30万?自9月中旬蔚来ET5展车陆续到店以后,前来看车的人络绎不绝,新车的爆款特质可见一斑。而在本月底即将开启交付之际,有海外投资分析公司推算蔚来ET5的订单已经超过20万辆,超越了202比惨!看看成立至今最惨的基金(们)文喜胖不胖(转载请注明出处)一市场温度2022年9月23日,市场温度31。19,比上一个交易日降低0。8摄氏度。今天全市场成交量6684亿,比昨天好点,多了280亿。不过最近市场交30!FIFA第1碾压式胜利内马尔两记绝妙助攻理查利森独中两元北京时间9月24日凌晨,国际足联比赛日,世界排名第一的巴西队,迎来了他们的热身赛对手加纳。世界排名第60位的加纳世界杯与葡萄牙韩国和乌拉圭分在同一小组,和巴西队的交锋,也算是有针对Doinb吃蛋糕,我只尝一口!南波儿怒斥毒硬币LBL全都是商业哈喽大家好,这里是狗子,每天为您带来有趣的游戏资讯,喜欢的记得点个关注在S12开赛之前,谁也没想到一个LPL选手举办的比赛,会成为这段时间热度最高的民间赛事,这不,虽然没能打进S1
曾被那英否定,因一首歌爆红,却被网友骂娘炮,如今成功逆袭前几天,周深跨年好忙冲上热搜。跨年当晚,周深从央视到北京卫视江苏卫视,再到B站,参加了四场跨年晚会,唱了九首歌。他的粉丝们纷纷表示家里的遥控器都快按冒烟了。其实,周深已经不是第一次黑暗荣耀VS猪猡王这两天手机信息里跳出来一个韩国棒子郑宇泽窜台,本想把这个系列放在后面写,出了这个傻棒子的事,我就提前先动笔写这个吧。一最初的想法当大家看到这篇文章的题目时,可能会问我是不是该写游戏天外武林评测武侠风映衬的肉鸽卡牌新体验岁末年初的时节往往是国产游戏发力的日子。在主流游戏大厂纷纷偃旗息鼓时,一些国产精致小品作品总会在这段时间问世。天外武林就是一部有希望进入众多玩家视线的游戏。游戏将武侠风格同卡牌玩法传音InfinixNote系列新手机将搭载JBL调音系统IT之家1月6日消息,去年传音旗下Infinix宣布了180W快充技术,其开发了新的均热板设计,并发布了其首款配备200MP摄像头的手机。Infinix公司将通过专注于手机的音频质2022年世界科技发展回顾空间技术与宇宙探索篇科技日报国际部俄罗斯Russia重建航空工业生产体系启动球体卫星群项目2022年,俄共完成22次航天器发射任务,其中包括向国际空间站发射2次联盟号载人飞船和2次进步号货运飞船。原定数码大V科普E4E5E6的差别!E6功耗更低,E4观感最好随着一加11的发布,网上关于它屏幕方面的讨论也是越来越多,其中有不少网友都在议论,为何一加11会选择使用E4材质,而没有选择E6材质,针对这个问题,有不少数码大V都通过微博进行了科元宇宙板块跌1。19数源科技涨9。99居首来源中国经济网中国经济网北京1月6日讯今日,元宇宙板块整体涨幅1。19,其中32只股票上涨,2只股票平盘,110只股票下跌。数据显示,截至今日,元宇宙板块近一周涨幅4。34,近一月极氪001累计交付突破7万台,ZEEKROS4。0正式发布记者从极氪汽车获悉,日前,极氪智能科技宣布旗下豪华猎装轿跑极氪001累计交付量突破7万台,并同时发布了在交互体验和视觉设计上全面焕新的ZEEKROS4。0系统,该系统将在近期对用户产科临床手册正式出版孕产妇死亡率是全球公认的衡量国民健康水平与社会进步的三大综合指标之一。2021年,中国孕产妇死亡率已下降至16。110万。但随着国家三胎政策的实施,高龄孕产妇比例增加,高危孕产妇管刘亦菲澳门苍蝇馆就餐,路人镜头下手抓吃饭没架子,穿卫衣很低调卫衣毫无疑问是街头薄款,每每到了冬季卫衣的上身率总是居高不下,虽然卫衣在保暖这一块,不及羽绒服,大衣之类的保暖外套,但是通过衣品的选择还有款式之间的搭配,做到保暖还是蛮轻松的,当然2023。01。06快报ERDOS携手swaying推出胶囊系列Naver完成对Poshmark的收购HampampampM推出虚拟游戏体验01。ERDOS携手swaying推出胶囊系列新年之际,ERDOS鄂尔多斯再度携手独立设计师品牌swaying推出胶囊系列,延续全针织轻礼服概念,以更具流动性的针织语言,放大女性对
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网