从Java到Dart:相似与差异探索
"这篇文档是关于Java程序员转向Dart语言的学习笔记,主要关注Dart与Java的相似之处和差异。作者希望通过分享学习经验,帮助有相同背景的开发者更轻松地过渡到Dart和Flutter的混合开发环境。" 1. 主函数入口 在Java中,`main` 方法必须声明为 `public static void main(String[] args)`,但在Dart中,`main` 函数可以不带 `void` 关键字,并且默认就是顶级函数,无需类的上下文。 2. 变量声明 Dart中的变量声明与Java类似,但更简洁。例如,可以用 `var` 关键字声明变量,类型会根据初始值自动推断。 3. 空安全 Dart支持空安全,而Java在较新的版本(Java 8及以上)才引入了Optional类来处理可能为空的情况。在Dart中,非可空类型(如 `int`、`double`)不允许赋值为 `null`。 4. 布尔类型 Dart中的布尔类型 `bool` 与Java中的 `boolean` 类似,用于表示真或假。 5. 列表操作 - Dart的列表创建可以使用 `new List()` 或 `new List<String>()`,并且提供了丰富的操作方法如 `add`、`forEach`、`map`、`where`、`any` 和 `every`。 - `forEach` 遍历列表并执行指定的操作。 - `map` 应用一个函数到列表的所有元素,返回一个新的列表。 - `where` 过滤列表,返回满足条件的元素组成的新列表。 - `any` 和 `every` 分别检查列表中是否存在满足条件的元素和所有元素是否都满足条件。 6. 条件判断 Dart中的条件语句与Java类似,但可以使用三元运算符 `? :` 来简洁地表达条件赋值。 7. 字符串与数字操作 - 字符串与Java中的String类似,可以使用 `==` 进行比较。 - 数字除法和取整操作略有不同,Dart中可以使用 `/` 进行浮点除法,`~/` 进行整数除法。 8. 空合并运算符 Dart的 `??` 运算符是空合并运算符,如果左侧的值为 `null`,则返回右侧的值,这对于处理可能为 `null` 的值非常有用。 9. 类型转换 - Dart中的类型转换使用 `int.parse()` 将字符串转换为整数,与Java的 `Integer.parseInt()` 类似。 通过这些对比和学习,Java开发者可以更快地适应Dart语言,从而顺利进入Flutter的开发世界。Dart的语法简洁且具有现代编程语言的特点,使得从Java过渡的开发者能感受到其便利性。同时,了解两者之间的差异对于理解和编写Dart代码至关重要。
void main(){//main方法里面没有参数,同时也可以没有void
//......
}
2、字符串可以用3个单引号或3个双引号定义一个段落(带换行的)
3、数字类型疑似只有int和double
4、布尔类型为bool
5、数组可以是常规的,也可以是List,比如:
var list= new List(); //也可以指定类型,如:var list= new List<String>();
list.add("111");
print(list);//这里打印出来:[111]
6、循环语句中for可以有两种写法:
1)for(int i=0;i<10;++i)
2)for(var item in list)//这种方法把list中的值一个个的赋值给item下面可以使用它
3)list.forEach((value){...做点啥...});//这方法可以在“做点啥”区域中对list中的每个value取值操作
4)List otherList = list.map((item){..做点啥...}).toList();//map方法可以在“做点啥”处对list中的值进行取值操作【同forEach】
5)List otherList = list.where((item){ return item>5 }).toList();//where方法可以将满足条件的值返回成一个新List
6)bool isTrue = list.any((item){ return item>5 }).toList();//any方法可以判断List中是否有满足条件的值,只要有满足条件的值就返回true(否则false)
7)bool isTrue = list.every((item){ return item>5 }).toList();//every方法同any方法,但是要求每个值都满足条件才返回true(否则false)
8)对于Set类型的循环详见16 (也是用forEach)
9)对于Map类型的循环详见17 (也是用forEach)
7、判断数据类型 用 is 关键字,如下
var aaa="1123";
if(aaa is String){
print("当前是字符串类型");
}else if(aaa is int){
print("当前是数字类型");
}
8、运算符中加减乘都跟java一样,但是除(/)得到的是真实的除数,如:13/5=2.6而并非java中的2。但是要想得到取整的除法可以用“~/”如:13~/5=2
9、字符串的判断可以直接用 “==”来判断,如:
String str = '123';
if(str=="123"){
print("进来");//这时会进来打印
}
10、条件运算符(条件?真值:假值)跟java一样,但是还有个双问号的条件运算符“??”,如:
var a;
var b = a ?? 10;
print(b);//此时打印的值是10
--------
var a = 20;
var b = a ?? 10;
print(b);//此时打印的值是20
=============
有上述可知,双问号的条件运算符用法:如果前面是空,则将后面的返回,如果前面非空,则将前面返回;
【结合上述8,还有个“??=”的运算符用法,可以尝试用下】
11、类型转换的用法
int 转 String则用“int.parse()”,而String转int则用“int.parse(str)”,String转double则用“double.parse(str)”
如:
String str="123";
var number = int.parse(str);
if(number is int){
print("被转成了数字类型");
}
---------
剩余12页未读,继续阅读
- 粉丝: 19
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- OptiX传输试题与SDH基础知识
- C++Builder函数详解与应用
- Linux shell (bash) 文件与字符串比较运算符详解
- Adam Gawne-Cain解读英文版WKT格式与常见投影标准
- dos命令详解:基础操作与网络测试必备
- Windows 蓝屏代码解析与处理指南
- PSoC CY8C24533在电动自行车控制器设计中的应用
- PHP整合FCKeditor网页编辑器教程
- Java Swing计算器源码示例:初学者入门教程
- Eclipse平台上的可视化开发:使用VEP与SWT
- 软件工程CASE工具实践指南
- AIX LVM详解:网络存储架构与管理
- 递归算法解析:文件系统、XML与树图
- 使用Struts2与MySQL构建Web登录验证教程
- PHP5 CLI模式:用PHP编写Shell脚本教程
- MyBatis与Spring完美整合:1.0.0-RC3详解