Flutter从入门到精通之Dart语言这一篇就够了
前言
Dart 是由 Google 主导开发 ,于2011年10月公开;它的开发团队由 Google Chrome 浏览器 V8 引擎团队的领导者拉尔斯·巴克主持,目标在于成为 下一代结构化 Web 开发语言
Dart 也是一种 面向对象语言 ,但是它采用基于 类编程 ; Dart 的 设计目标 应该是既对标 Java ,也对标 JavaScrip t, Dart 在 静态语法方面 和 Java 非常相似,如 类型定义、函数声明、泛型 等,而在 动态特性方面 又和 JavaScript 很像,如 函数式特性、异步支持 等,因此 Flutte r 便成为了 跨平台 行业一个 热点
想要学习开发 Flutter 首先就要先了解 Dart 语言的基本概念 Dart 基本概念
Dart 是面向对象的语言 ,和许多面向对象语言有着很接近的语法,如果你学过 C++,C#,Java 那么你只需要很短的时间就可以掌握 Dart ,并且 Dart 语言具有以下几个特点: Dart 是谷歌开发的开源的面向客户端的开发语言 Dart 可帮助开发者开发富有表现力的,高性能的客户端应用;它具有功能强大的框架,灵活易用的工具。 客户端友好,非常适合开发移动和 Web 应用
一个简单的Dart程序大概长这个样子: // 定义函数 printInteger(int aNumber) { print("The number is $aNumber."); // 打印输出 } // 应用执行入口 main() { var number = 42; // 声明和初始化变量 printInteger(number); // 调用函数 }Dart 核心概念
如果你要深入学习 Dart 请谨记以下这些核心概念: Dart 中所有 变量 都是 对象(object) ,每个对象都是某个类的实例,包括 number, function, null 以及 object ;所有的对象都继承自 Object 这个超类。 Dart 是强类型语言 ,尽管这样,声明变量也可以不指定变量类型 Dart 可以自动推断一个变量的类型 ,就像上面的例子 变量 nunber 被自动推断为 int 类型 如果一个变量不确定是何种类型或者可以接受任何类型,那么你可以使用特殊类型: dynamic 来声明一个变量 /// Returns a Boolean representation for [arg], which must /// be a String or bool. bool convertToBool(dynamic arg) { if (arg is bool) return arg; if (arg is String) return arg == "true"; throw ArgumentError("Cannot convert $arg to a bool."); }Dart 支持泛型 ,比如: List (int类型元素的数组)、List (包含可能任何object类型元素的集合)Dart 支持顶级函数 (例如main()),以及 绑定到类或对象的函数 (分别是静态和实例方法)你还可以在函数内创建函数(嵌套函数或本地函数) 类似地, Dart支持顶级变量 ,以及 绑定到类或对象的变量 (静态和实例变量);实例变量有时称为字段或属性 与 Java,C# 等不同 , Dart 没有 public,protected 和 private 这些访问修饰符,私有变量或方法会以下划线(_)开头来表示 Dart 里的 变量或标识符 必须是以 字母或下划线 开头的 字母、下划线、数字的组合 注意区分表达式 (expressions have runtime values)和语句(statements don"t have runtime values),;比如 条件表达式: condition ? expr1 : expr2, 会返回值 expr1 或 expr2,比较下 if else 语句,不具有值;语句通常包含一个或多个表达式,但表达式不能直接包含语句 Dart 工具具有两种类型异常提醒:警告和错误 ;警告代表你的代码可能有问题,但是不会阻止程序的运行;错误分为编译错误和运行错误,前者会阻止程序的运行,后者则会在程序运行使抛出异常!
我们可以把 Dart 中的类可分为两大类: 泛型类 和 非泛型类 先说 非泛型类 也就是开发中接触最多的一般类,一般的类去定义一个变量的时候,它的 类 实际就是这个变量的类型. 例如定义一个 Student 类,我们会得到一个 Student 类型 泛型类比非泛型类要更加复杂 ,实际上 一个泛型类可以对应无限种类型 。为什么这么说,其实很容易理解;在定义泛型类的时候会定义泛型形参,要想拿到一个合法的泛型类型就需要在外部使用地方传入具体的类型实参替换定义中的类型形参 我们知道在 Dart 中 List 是一个类,它不是一个类型 ;由它可以衍生成无限种泛型类型。例如 List、List、List>、List
相差1000元,小米13系列该怎么选?详细对比找答案小米13系列昨晚正式发布,相信许多小伙伴都看过相关介绍,但现在还是犹豫不知道选哪一款更好。本篇文章详细对比两款手机差异,希望这篇文章可以给你作为参考,选择喜欢的那款机型。屏幕小米1
连花清瘟面前,美团和京东都认怂了最近几天,朋友圈里最牛的人,就是能买到连花清瘟的人。潘哥发现,如今的连花清瘟,成了紧俏货。不论是美团饿了么,还是淘宝京东拼多多,甚至是叮当快药1药网方舟健客药房网,想买到连花清瘟都
奇瑞小蚂蚁为什么火?奇瑞新能源小蚂蚁为什么火,看看销量就知道了。根据乘联会数据,今年15月A00级纯电轿车累计销量近26万辆,市场占比高达33。3,已成为纯电动汽车的第一大细分市场。对比来看,A级和B
台积电变美积电,伤害了谁?中国新闻网202212111542发表于北京以下文章来源于玉渊谭天,作者谭主越来越多的台积电工程师正陆续搭专机飞往美国亚利桑那州。在那里,有一个台积电斥资400亿美元新建的芯片制造
苹果霸占中国高端市场!国产厂商交出答卷,第二个华为出现了这两年手机市场频频遇冷,但苹果在中国市场的市场份额却屡破新高,这表明高端手机市场有更强的韧性。过去两年的中国市场趋势显示,苹果公司的高端市场份额已明显领先华为,几乎成为中国高端手机
放弃了华为mate40pro,入手了iPhone14pro一周后,体验差异太大篇前啰嗦本人之前一直是华为用户,上一部是Mate40Pro,这篇帖子主要谈谈入手一个月手机的优缺点和相对于华为来说的一些优势和不足。(ps我着重谈的缺点,篇幅较长只是为了让未入手的
穿戴音箱深夜看球的不二之选感谢数字尾巴提供的众测产品倍思AeQur系列N10穿戴音箱。你是否遇到过这种情况情景1长时间的电话令你拿起手机的手发麻,特别是这个时候恰巧还有点别的事,还腾不出手?带个耳机呢一会就
翻译年轻的火箭队准备起飞TheHoustonRocketsmaynotbeboundfortheplayoffsintheWesternConferencethisseason,butMondayswin
达尔文错了?螃蟹竟在地球上出现了5次,相同形式为何不断出现?以前,人们相信生命形式都是固定存在的,比如羊,它们的过去和未来都只能是羊。然而,达尔文打破了这个传统,他相信生物可以通过进化创造无数最美丽的生命形式。这个观点极具开创性,因为以人类
种菜真是种族天赋?我国宇航员在太空种水稻,首次结籽有何意义?随着本月四号晚的一道流星划过,神舟十四号飞船的返回舱完成了降落,陈冬刘洋蔡旭哲3名航天员纷纷表示出舱状态良好。这也预示着神舟十四号载人任务的完美收官,我国的载人航天科技,以及太空探
为了羲和号奔向太空来源人民日报羲和号卫星示意图。上海航天技术研究院供图制图沈亦伶面前是一片光与火的海洋。烈焰洪流一般奔涌着喷发着,无声澎湃在恒星的表面。太阳是如此巨大,33万个地球相加,才能达到一个