Dart语言与其他语言事实有什么差别呢?在已有的编程语言履历的基础上,我们该若何快速上手呢?本篇文章从编程语言中最主要的组成部分,也就是基础语法与类型变量出发,一起来学习Dart吧
Dart可以在编译器(Android Studio)、下令行(条件是安装了Dart SDK)及网页repl.it中调试编译,由于本次内容对照简朴,我们直接在网页中调试编译即可。
我们界说一个输出当前时间的函数,并输出当前时间
//输出当前时间 void nowTime() { int year = DateTime.now().year; int month = DateTime.now().month; int day = DateTime.now().day; int hour = DateTime.now().hour; int minute = DateTime.now().minute; int second = DateTime.now().second; String str = 'Hello World, This is $year-$month-$day $hour:$minute:$second'; print(str); }
和绝大多数其他语言一样,Dart要求以main函数作为执行的入口,我们再界说main函数,并将输出那时时间的函数放入main函数中
void main() { nowTime(); }
点击“run”按钮,下令就会输出
Hello World, This is 2019-8-11 10:45:46
我们已经可以简朴的运行Dart代码了,我们接下来再看一下Dart的基本变量类型
在Dart中,所有的变量都可以用var来声名,固然,也可以指定详细的类型来声名一个变量。当使用var声名变量时,示意类型是交由编译器推断决议的。虽然Dart支持用var来声名变量,但我照样建议使用详细的类型来声名变量,这样编辑器和编译器就能使用这些详细的类型,向你提供代码补全或编译告警的提醒了。
注重:在默认情况下,所有未初始化的变量值都是null,因此,我们判断变量是否初始化时只用和null对照即可。
Dart是类型平安的语言,而且所有类型都是工具类型,都继续自顶层类型Object,因此一切变量的值都是累的实例(即工具),其中包罗数字、布尔值、函数和null也都是继续自Object工具。
Dart内置了一些基本类型,如num、bool、String、List及Map。
num、bool及String基本上是编程语言中最常用的类型
Dart的数值类型num只有两种子类:int(整数类型)和double(浮点类型)
void numVerb() { int x = 100; double y = 5.2; double xy=x*y; int roundY = xy.round(); print('x = $x, y = $y, xy = $xy, roundY = $roundY'); }
x = 100, y = 5.2, xy = 520.0, roundY = 520
除了常见的基本运算符(好比:+、-、*、/,以及位运算符)外,还能使用继续自num的abs()、round()等方式来实现求绝对值、取整等功能。
Dart的布尔类型bool也只有两种取值:true和false,他们都是编译时常量。 Dart是类型平安的,因此我们需要显示的检查值
void checkValue() { bool isTrue = true; assert(isTrue == true); //assert(isTrue);//错误 }
Dart的String由UTF-16de字符串组成,界说字符串时我们既能使用单引号也能使用双引号,而且还能在字符串中嵌入变量或表达式(可以使用${express}把一个表达式的值放进字符串,而若是是一个标识符,则可以省略{})。
/** * 将一个字符串中的字母所有转换为大写 */ void upperCase() { String str = 'toUpperCase'; String str2 = "toUpperCase"; String str3 = 'str = $str, str2 = $str2, str to upperCase: ${str.toUpperCase()}'; print(str3); }
str = toUpperCase, str2 = toUpperCase, str to upperCase: TOUPPERCASE
为了获得内嵌工具的字符串,Dart会挪用工具的toString()方式,而常见字符串的拼接,Dart则通过内置运算符“+”实现。
void stringVerb() { int year = DateTime.now().year; int month = DateTime.now().month; int day = DateTime.now().day; int hour = DateTime.now().hour; int minute = DateTime.now().minute; int second = DateTime.now().second; String str = 'Hello World, This is ' + year.toString() + '-' + month.toString() + '-' + day.toString() + ' ' + hour.toString() + ':' + minute.toString() + ':' + second.toString(); print(str); }
Hello World, This is 2019-8-11 12:19:31
对于多行字符串对的构建,你可以通过三个单引号或三个双引号的方式声名
void stringVerb() { int year = DateTime.now().year; int month = DateTime.now().month; int day = DateTime.now().day; int hour = DateTime.now().hour; int minute = DateTime.now().minute; int second = DateTime.now().second; String str = """Hello World, This is $year-$month-$day $hour:$minute:$second"""; print(str); String str2 = '''Hello World, This is $year-$month-$day $hour:$minute:$second'''; print(str2); }
Hello World, This is 2019-8-11 12:32:5 Hello World, This is 2019-8-11 12:32:5
List和Map划分对应其他编程语言中的数组和字典类型,统称为聚集类型
void listTest() { List<String> arr1 = ['name', 'age', 'sex']; for (var value in arr1) { print(value); } List<int> aar2 = List.of([1, 2, 3]); aar2.add(4); for (var value2 in aar2) { print(value2); } List<num> nums = new List<num>(); nums.add(1); nums.add(1.1); nums.add(3); nums.add(5.20); for (var value3 in nums) { print(value3); } }
name age sex 1 2 3 4 1 1.1 3 5.2
如上代码所示,我们声名并初始化了三个List变量,并挪用其各自的迭代方式依次打印出其内部米素
void mapTest() { Map<String, String> map = {'name': 'Jack', 'age': '18', 'sex': '男'}; map['name'] = 'Tom'; map['age'] = '20'; map['sex'] = '男'; map.forEach((k, v) => print('$k:$v')); Map map2=new Map<String,String>(); map2['name']='Dart'; map2['age']='2'; map2.forEach((k,v)=>print('$k:$v')); }
name:Tom age:20 sex:男 name:Dart age:2
如上代码所示,我们声名并初始化了两个Map变量,同样挪用其各自的迭代方式依次打印出其内部的米素
若是你想界说不能变的变量,则需要在界说前加上final或const关键字
const:示意变量在编译时代既能确定的值
final:示意变量可以在运行时确定值,但一旦确定后就不能改变
const与final区别:在界说const常量时,必须直接赋值,且只能是一个固定值,不能为一个变量或公式;在界说final常量时,可以赋值也可以不赋值,赋值时可以赋值为一个固定值,也可以赋值为一个变量或公式,但一旦赋值后就不能再改变
1.阿里云: 本站现在使用的是阿里云主机,平安/可靠/稳固。点击领取2000米代金券、领会最新阿里云产物的种种优惠流动点击进入
我的世界怎么打末影龙(我的世界末影龙究竟该怎么打)《我的世界》末影龙究竟该怎么打呢?网上流传了很多很多种打法,但是90%的技巧都是过期的技巧。今天我们就来探讨下,在最新的海洋版,究竟如何来打末影龙。萌...
本文导读目录: 1、黑客帝国:尼奥之路秘籍是什么? 2、要做海报,哪位兄弟有黑客帝国那种数字矩阵的图片啊? 3、黑客帝国讲述的是什么故事? 4、科幻电影中出现的数字组成的东西(背景绿色的,...
许多MM都轻信拔牙齿能够 廋脸,实际上这压根就沒有科学研究依据呢!每一个人的脸部轮廓是由鹳骨、下颌和牙协同组成的,拔牙齿以后面部骨骼并始终不变原先的部位和样子,因而对脸形的更改也不会造成明显的危害...
首先说一下,现在拼多多是可以免费开设多家店铺的,个人凭借身份证可以开2家店铺,企业凭借资质是可以开5家店铺,好了话不多说,进入正题。 拼多多免费注册店铺 这里首先告诉大家一点,拼多多是没有PC端的...
泳帽的作用 1、防止掉头发,弄脏池水,保持池水卫生,另外大家游泳的时候手才不会缠到头发 。 2、戴泳帽之后阻力小。 3、泳帽大多颜色鲜艳,方便岸上的救生员发现。 4、塑胶的泳帽,可以防止头发和...
找黑客入侵时时彩网相关问题 黑客比较响亮的名字相关问题 黑客口中的肉鸡是什么意思 极客平台(慧极客平台) 一般黑...