Dart语言学习-变量与流程控制

前言

Dart是谷歌开发的计算机编程语言,它被用于web,服务器,移动应用等领域的开发,Dart亮相于2011年,2015年5月的Dart开发者峰会上,亮相了基于Dart语言的移动应用开发框架Sky,后更名为Flutter

img.jpg

简介

Dart面向对象的编程语言,语言是类型安全的;它使用静态类型检查来确保变量的值始终与变量的静态类型相匹配。这也叫健全类型,强类型语言Dart也支持类型推断,类型注释仍是可选的,Dart 提供 健全的空值安全,这意味着只有您声明值可以为空的情况下,值才可以为空;当 Dart 确定变量不可为空时,该变量 永远 不可为空,这一点和Kotlin很像,可以避免空值的使用异常

运行时执行平台

Dart 的编译器技术可让您以不同的方式运行代码:

原生平台:针对面向移动和桌面设备的应用程序, Dart 拥有具有实时 (JIT) 编译功能的 Dart VM和用于生成机器代码的预先 (AOT) 编译器

Web 平台:针对面向 Web 的应用程序, Dart 拥有开发时编译器 (dartdevc) 和生产时编译器 (dart2js)。两种编译器均能将 Dart转换为 JavaScript

在开发过程中,快速的开发周期对于迭代至关重要。Dart VM 提供了一个实时编译器 (JIT) ,编译器拥有增量重编译功能 (支持热重载)、运行数据收集 (用于驱动 DevTools) 以及丰富的开发调试支持。

当应用程序可以部署到生产环境时 (无论是发布到应用程序商店还是部署到生产后端), Dart AOT 编译器提供原生的 ARM 或 x64 机器码的 AOT 编译。经过 AOT 编译的应用程序将稳定快速地启动。

经过 AOT 编译的代码会在高效的 Dart 运行环境中运行,该运行环境拥有健全的 Dart 类型系统,并使用快速对象分配和分代垃圾收集器来管理内存

Dart开发环境搭建

获取Dart SDK

https://dart.cn/tools/sdk/archive
下载完成SDK之后可以对其进行直接解压到任意目录

img.PNG

下载使用WebStorm编辑器

https://www.jetbrains.com/webstorm/
打开WebStorm之后,安装Dart插件

img.PNG

创建一个Dart项目并运行

创建一个Dart项目,需要指定SDK的安装路径,然后就可以运行第一行Dart代码了

img.PNG

Dart中的变量以及条件循环控制

数据类型

number 数字类型可以使用intdouble
String 字符串类型
bool 布尔类型
list dart中的列表和其它编程语言中的数组相同
map 键值对映射
dynamic 动态类型,实际是一个object类型,在编译期间不做检查,在运行期间会做类型检查

变量

Dart属于强类型语言,var用来声明变量,也可以使用类型直接声明,并且具有自动类型类型推导,也可以使用dynamic声明动态类型,Dart将所有未初始化的值都当做对象,所有未初始化的变量值都为null

var name = 'Mike';
String name = 'Mike';
dynamic value = 'Mike';
value = 1;
value = false;

常量

可以使用const和final定义常量,const的值会在编译期间确定,final的值要到运行时才能确定

const name1 = 'Mike';
final String value = '2';

运算符

is! 当类型不匹配时返回true
??= 当变量为null时候才设置值
v1 ?? v2v1不为null的时候返回其值,否则返回v2的值

var name = 'Mike';
print('${name is String}'); //true
print('${name is! String}');//false 
var name = null;
name ??= "Mike";
print(name); //Mike
name ??= "张三";
print(name);//张三
var value = 2;
var data;
print(value ?? 'value iis null'); //2
print(data ?? 'data iis null'); //data iis null'

条件控制

var name = 'Mike';
if(name == 'Mike'){
    print('name is Mike');//执行
} else{
    print('name is else');
}

switch(name){
    case 'Mike': {
        print('name is Mike');//执行
    }
    break;
    case '张三': {
        print('name is 张三');
    }
    break;
    default: {
    }
}

循环控制

for循环
for in循环
while循环
do..while循环

欢迎关注Mike的简书

Android 知识整理

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 227,533评论 6 531
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 98,055评论 3 414
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 175,365评论 0 373
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 62,561评论 1 307
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 71,346评论 6 404
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 54,889评论 1 321
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 42,978评论 3 439
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 42,118评论 0 286
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 48,637评论 1 333
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 40,558评论 3 354
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 42,739评论 1 369
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 38,246评论 5 355
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 43,980评论 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 34,362评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 35,619评论 1 280
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 51,347评论 3 390
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 47,702评论 2 370

推荐阅读更多精彩内容