Dart编程语言从基础到进阶
Dart的语言的发展史以及Dart能做什么未来发展怎么样等等问题我们在这里是不讨论的。我相信既然选择了来学习它,那你内心基本已经认可了它,所以我们废话不多说直接进入主题。

1.首先我们来看一个典型的Dart程序:

//定义了一个输出数字的函数

printThings(int sNumber){

print(‘The result is $sNumber.’);

}

//Dart程序从main()函数开始执行

main(){

var number = 1;//声明并初始化一个变量

printThings(number);//调用我们上面定义的函数

}

  

​ 下面我们来分析解释一下上面的程序:

//定义了一个输出数字的函数

​ 以双斜杠开头的一行语句称为单行注释。另外还有多行注释和文档注释,这个后面再说。

int sNumber

​ int 表示一种数据类型。另外还有一些其他的内置类型这里不讨论。

var number = 1;//声明并初始化一个变量

​ 这里个的 1 表示一个数字字面量。

print(‘The result is $sNumber.’);

​ print();函数是一种比较方便快捷的信息输出函数。

print(‘The result is $sNumber.’);

​ $variableName 表示字符串插值:字符串字面量中包含变量或者表达式。

main(){

}

​ main()函数是一个特殊且必须的顶级函数,Dart程序是从该函数开始执行的。有Java基础的对此应该不陌生。

var number = 1; // 声明并初始化一个变量。

​ var 用来定义变量,一般通过这种方式定义的变量都是不需要指定变量类型的。

​ 通过这一段实例代码,基本上对Dart语言的特性有个简单的了解了。

2.重要概念

​ 在我们学习Dart的过程中,不管是零基础的还是其他语言转过来的,都要牢记下面的几个概念:

​ a.在Dart语言中一切皆对象,所有变量引用的都是对象,每个对象都是一个类的实例,数字、函数包括null都是对象。

​ b.Dart是强类型语言,但是。。。在声明的时候指定类型是可选的,因为Dart可以自己进行类型推断。比如上节中的那个示例,根据number=1推断出来number是int类型。另外如果想显式的指定一个并不确定的类型可以直接使用关键字dynamic.后面可以好好讨论这个问题。

​ c.Dart是支持泛型的。比如List表示一组由任何类型对象组成的列表。

​ d.Dart支持全局函数,同时支持定义属于类或对象的函数,还可以在函数中定义函数。

​ e.Dart支持全局变量,也可以定于属于类或对象的变量。

​ f.Dart没有类似java那样的成员访问限制符关键字, 如果在一个标识符前面加了_(下划线)则表示该标识符在库内是私有的。比如:__myName

​ g.标识符可以以字母或者下划线开头,后面可跟字符或者数字的组合。

​ h.Dart中表达式和语句是有区别的,表达式有值,而语句是没有的。一个语句可以有一个或者多个表达式,但是一个表达式不能只包含一个语句。

​ 这里的重要概念现在不理解不重要,因为单纯拎出来去学的话还是有点难理解的。后面我们边学边理解就会容易很多。现在你只要脑子里有这方面的概念就行了。
更多内容请关注公众号“计算机自学平台”

Dart编程语言从基础到进阶1的更多相关文章

  1. Dart编程语言入门

    Dart基础入门语法介绍,详细说明可以查看相关视频<Dart编程语言入门>. 变量与常量 变量 1.使用 var 声明变量,默认值为 null var a;//null a = 10; 2 ...

  2. jQuery基础---Ajax进阶

    原文:jQuery基础---Ajax进阶 内容提纲: 1.加载请求 2.错误处理 3.请求全局事件 4.JSON 和 JSONP 5.jqXHR 对象 发文不易,转载请注明出处! 在 Ajax 基础一 ...

  3. python基础——面向对象进阶下

    python基础--面向对象进阶下 1 __setitem__,__getitem,__delitem__ 把对象操作属性模拟成字典的格式 想对比__getattr__(), __setattr__( ...

  4. python基础——面向对象进阶

    python基础--面向对象进阶 1.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 ...

  5. Python基础与进阶

    1 Python基础与进阶 欢迎来到Python世界 搭建编程环境 变量 | 字符串 | 注释 | 错误消除 他只用一张图,就把Python中的列表拿下了! 使用 If 语句进行条件测试 使用字典更准 ...

  6. Atitit.编程语言的基础句型and汉语英文比较

    Atitit.编程语言的基础句型and汉语英文比较 1. 编程语言常见的句型1 1.1. Verb(obj)1 1.2. If  then else1 1.3. For1 2. 英语中的五种基本句型结 ...

  7. Git基础及进阶-系统总结

    Git基础及进阶-系统总结 by 小强 2019-07-01 考虑到入职后不仅需要熟练掌握git的基本使用,在企业实际操作中还涉及一些进阶指令.作为一个程序员,熟练使用工具是一项基本技能,也是程序员的 ...

  8. 第4章 基础知识进阶 第4.1节 Python基础概念之迭代、可迭代对象、迭代器

    第四章 基础知识进阶第十七节 迭代.可迭代对象.迭代器 一.    引言 本来计划讲完元组和字典后就讲列表解析和字典解析,但要理解列表解析和字典解析,就需要掌握Python的高级的类型迭代器,因此本节 ...

  9. Linux三剑客之awk精讲(基础与进阶)

    第1章 awk基础入门 要弄懂awk程序,必须熟悉了解这个工具的规则.本实战笔记的目的是通过实际案例或面试题带同学们熟练掌握awk在企业中的用法,而不是awk程序的帮助手册. 1.1 awk简介 一种 ...

随机推荐

  1. SecureCRT连接虚拟机下的CentOS7

    1.首先在VMWare下配置CentOS为桥接模式: 2.查看本机ip: 3.ip addr查看centos的mac地址: 4.在root权限下修改/etc/sysconfig/network-scr ...

  2. [LUOGU3413] SAC#1 - 萌数

    题目背景 本题由世界上最蒟蒻最辣鸡最撒比的SOL提供. 寂月城网站是完美信息教室的官网.地址:http://191.101.11.174/mgzd . 题目描述 辣鸡蒟蒻SOL是一个傻逼,他居然觉得数 ...

  3. Snagit卸载不彻底的问题

    Snagit是一款优秀的截图录屏软件,尤其是他的编辑器.方便的复制粘贴功能比较好用. 但是,卸载不完全绝对是一件烦人的事情. 可能的解决方案: 1.sfc /scannow >> CBS. ...

  4. SpringBoot2.x--入门篇--01--HelloWorld

    很多人说,学习springboot至少需要spring基础,servlet基础等等,笔者不敢苟同.凡是有一定java基础的人,都可以直接学习springboot,当学到原理和源码时,通过查缺补漏的方式 ...

  5. 3.如何理解开多线程可以充分利用CPU?

    如何理解开多线程可以充分利用CPU? <1>操作系统采用时间片轮转调度算法分配的时间片给每个进程中的线程 <2>操作系统的时间片轮转调度算法分配的时间片 在别的进程中都没有准备 ...

  6. SpringBoot-Mysql模板多数据源加载

    SpringBoot-Mysql模板多数据源加载 qq交流群: 812321371 微信交流群: MercyYao 简介 在 java 项目里常用到 mysql 多数据源操作.结合 springboo ...

  7. MySQL基础篇(1)SQL基础

    SQL是Structure Query Language(结构化查询语言)的缩写,它是使用关系模型的数据库应用语言. 一.SQL分类(DDL,DML,DCL) DDL(Data Definition ...

  8. 设计模式(十八)Memento模式

    在使用面向对象编程的方式实现撤销功能时,需要事先保存实例的相关状态信息.然后,在撤销时,还需要根据所保存的信息将实例恢复至原来的状态. 要想恢复实例,需要一个可以自由访问实例内部结构的权限.但是,如果 ...

  9. SpringCloud之Zuul高并发情况下接口限流(十二)

    高并发下接口限流技术gauva(谷歌的框架) MySql最大连接数3000: 原理:框架每秒向桶里放100个令牌,接口请求来了先去拿令牌,拿到令牌后才能继续向后走,否则不允许向后执行:当接口请求太频繁 ...

  10. WebSocket原理及技术简介

    摘要: WebSocket用于在Web浏览器和服务器之间进行任意的双向数据传输的一种技术.WebSocket协议基于TCP协议实现,包含初始的握手过程,以及后续的多次数据帧双向传输过程.其目的是在We ...