Dart编程语言从基础到进阶1
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的更多相关文章
- Dart编程语言入门
Dart基础入门语法介绍,详细说明可以查看相关视频<Dart编程语言入门>. 变量与常量 变量 1.使用 var 声明变量,默认值为 null var a;//null a = 10; 2 ...
- jQuery基础---Ajax进阶
原文:jQuery基础---Ajax进阶 内容提纲: 1.加载请求 2.错误处理 3.请求全局事件 4.JSON 和 JSONP 5.jqXHR 对象 发文不易,转载请注明出处! 在 Ajax 基础一 ...
- python基础——面向对象进阶下
python基础--面向对象进阶下 1 __setitem__,__getitem,__delitem__ 把对象操作属性模拟成字典的格式 想对比__getattr__(), __setattr__( ...
- python基础——面向对象进阶
python基础--面向对象进阶 1.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 ...
- Python基础与进阶
1 Python基础与进阶 欢迎来到Python世界 搭建编程环境 变量 | 字符串 | 注释 | 错误消除 他只用一张图,就把Python中的列表拿下了! 使用 If 语句进行条件测试 使用字典更准 ...
- Atitit.编程语言的基础句型and汉语英文比较
Atitit.编程语言的基础句型and汉语英文比较 1. 编程语言常见的句型1 1.1. Verb(obj)1 1.2. If then else1 1.3. For1 2. 英语中的五种基本句型结 ...
- Git基础及进阶-系统总结
Git基础及进阶-系统总结 by 小强 2019-07-01 考虑到入职后不仅需要熟练掌握git的基本使用,在企业实际操作中还涉及一些进阶指令.作为一个程序员,熟练使用工具是一项基本技能,也是程序员的 ...
- 第4章 基础知识进阶 第4.1节 Python基础概念之迭代、可迭代对象、迭代器
第四章 基础知识进阶第十七节 迭代.可迭代对象.迭代器 一. 引言 本来计划讲完元组和字典后就讲列表解析和字典解析,但要理解列表解析和字典解析,就需要掌握Python的高级的类型迭代器,因此本节 ...
- Linux三剑客之awk精讲(基础与进阶)
第1章 awk基础入门 要弄懂awk程序,必须熟悉了解这个工具的规则.本实战笔记的目的是通过实际案例或面试题带同学们熟练掌握awk在企业中的用法,而不是awk程序的帮助手册. 1.1 awk简介 一种 ...
随机推荐
- centos7编译安装LNMP(nginx-1.16.0,mysql8.0.16,php-7.3.6)常见问题报错及解决方法
LNMP的安装与配置 nginx-1.16.0安装及配置: 第一步:前往官网下载nignx源码包 下载完毕后上传至服务器(先安装lrzsz) yum -y install lrzsz 安装完毕后执行: ...
- vue中methods,computed,filters,watch的总结
08.28自我总结 vue中methods,computed,filters,watch的总结 一.methods methods属性里面的方法会在数据发生变化的时候你,只要引用了此里面分方法,方法就 ...
- 聊聊面试-int和Integer的区别
最近面试了很多候选人,发现很多人都不太重视基础,甚至连工作十几年,项目经验十几页的老程序员,框架学了一大堆,但是很多 Java 相关的基础知识却很多都答不上来.还有很多人会回答,只知道要用,但是从来不 ...
- [HNOI2013][BZOJ3143] 游走 - 高斯消元
题目描述 一个无向连通图,顶点从1编号到N,边从1编号到M. 小Z在该图上进行随机游走,初始时小Z在1号顶点,每一步小Z以相等的概率随机选 择当前顶点的某条边,沿着这条边走到下一个顶点,获得等于这条边 ...
- php中转菜刀脚本过狗免杀
<?php $target="url";//shell 地址 菜刀连这个脚本做中转 $post=''; $i=0; foreach($_POST AS $K=>$V) ...
- 15.Nginx动静分离Rewrite
1.什么是动静分离? 将动态请求和静态请求区分访问, 2.为什么要做动静分离? 静态由Nginx处理, 动态由PHP处理或Tomcat处理.... 因为Tomcat程序本身是用来处理jsp代码的,但t ...
- 5分钟彻底理解Redis持久化
Redis持久化 RDB快照 在默认情况下,Redis将内存数据库快照保存到dump.rdb的二进制文件中. 可以对Redis进行设置,让它在"N秒内数据集至少有N个改动", 这一 ...
- java的数制转换(详解,全!)
对于进制转换,c/c++要用到辗转相除,不仅浪费时间,还造成代码量繁多,而任意之间的进制转换还需要以十进制为跳板, 先将其他进制的数字转换为十进制,再将十进制转换为其他进制,而java中自带进制转换的 ...
- 记一次 XxlRpcException:xxl-rpc request timeout at 超时问题
事件起因 昨天有同事找我到,说他搭建的 XXL-JOB 任务调度系统不能工作了,调用总是出错(服务端返回 500)希望我能帮忙处理一下,不过说实话我也没有搭建过 XXL-JOB 的经验,但是既然同事请 ...
- MySQL基础篇(3)常用函数和运算符
一.字符串函数(索引位置都从1开始) CONCAT(S1,S2,...Sn): 连接S1,S2,...Sn为一个字符串,任何字符串与NULL进行连接的结果都是NULL INSERT(str,x,y,i ...