由于最近准备使用flutter开发,flutter是谷歌最新提出的移动跨平台开发框架,基本实现一份代码安卓和ios同时运行,由于flutter是使用谷歌的dart语言开发的,所以先学习dart语言,本文记录dart语言学习总结,语言的学习目标是会熟练使用flutter,学习资料来源于dart的官方源文档。链接如下:https://www.dartlang.org/
一、dart代码的基本特征
// Define a function.printInteger(int aNumber) { print('The number is $aNumber.'); // Print to console. } // This is where the app starts executing.main() { var number = 42; // Declare and initialize a variable. printInteger(number); // Call a function. }
此代码片段简单的展示了变量的定义,函数的结构,字符串的输出等内容,先提供初学者了解大体结构以便后边有个心理准备。
二、dart的变量
var name = “zhang”
这句代码表明变量名为name的变量包含了一个“zhang”的字符串对象引用,这里使用var表示dart有类型推断的功能,不是必须明确指定类型,当然,可以使用 String name = “zhang”来明确指定类型,也便于代码的阅读,需要说明的是,字符串的定义,可以为单引号,也可以为双引号
dart定义一个类型的变量,如果没有明确赋值,一律为null,即使它的类型为int,依然为null,而不是像java中int初始值为0
当定义常量时,要使用final或者const,初始化后不可改变:const定义的是编译时的常量,编译时即确定了值,final定义的常量等号右边可以是变量,编译时并不能确定值
三、dart语言中的基本类型
numbers(int,double)
strings
booleans
lists (also known as arrays)
maps
runes (for expressing Unicode characters in a string)
symbols
下边是常见的类型和java的区别
numbers
dart中的numbers类型包括两种:int和double,特性和其他语言基本一致,这里主要列举numbers类型和String类型相互转换的几种方法,以后程序中肯定是比较常用的:
// String -> int
var one = int.parse('1');
// String -> double
var onePointOne = double.parse('1.1')
// int -> String
String oneAsString = 1.toString()
// double -> String
String piAsString = 3.14159.toStringAsFixed(2)
String
字符串可以用单引号或双引号,字符串拼接时用“+”号连接
当一个字符串需要拼接一个变量时,可以使用${}表达式,例如:
var z = “zhang”;
"zhangsan" == "$zsan"
这里需要提到的一点是,dart中比较字符串内容相等,可以直接使用==,而不是像java中的equals
布尔类型
同其他语言,不在介绍
Lists
java中有数组和list的区别,虽然他们底层结构可能一样,但是还是分为数组和list,dart中表示集合,就是list,没有数组的概念
定义方式:var list = [1, 2, 3];
maps
dart中的map同样是表示键值对,键不同,值可相同,类似于java的hashmap
定义方式:var gifts = {
// Key: Value
'first': 'partridge',
'second': 'turtledoves',
'fifth': 'golden rings'};