Dart语法基础-1基础语法
2020-09-08 本文已影响0人
tp夕阳武士
1.main函数
在VSCode中新建一个helloWorld.dart文件,添加下面的内容
main(List<String> args) {
print('Hello World');
}
2. 程序的分析
- Dart语言的入口也是main函数,并且必须显示的进行定义;
- Dart的入口函数main是没有返回值的;
- 传递给main的命令行参数,是通过List<String>完成的.
- 定义字符串的时候,可以使用单引号或双引号;
- 每行语句必须使用分号结尾,类似于OC语法的结尾;
3.定义变量
3.1明确声明
明确声明的格式:
变量类型 变量名称 = 赋值;
示例代码:
String name = 'coderwhy';
int age = 18;
double height = 1.88;
print('${name}, ${age}, ${height}'); // 拼接方式后续会讲解
注意事项: 定义的变量可以修改值, 但是不能赋值其他类型
String content = 'Hello Dart';
content = 'Hello World'; // 正确的
content = 111; // 错误的, 将一个int值赋值给一个String变量
3.2类型推导(Type Inference)
类型推导声明变量的方式, 格式如下:
var/dynamic/const/final 变量名称 = 赋值;
3.2.1 var的使用
var
的使用示例:
-
runtimeType
用于获取变量当前的类型
var name = 'coderwhy';
name = 'kobe';
print(name.runtimeType); // String类型
var
的错误用法:
var age = 18;
age = 'why';
//语法错误,因为第一行代码已经推断age是int类型
//第二行代码再为age赋值String类型,编译错误;
3.2.2dynamic的使用
dynamic
类似于Swift
语法中的任意类型:Any
dynamic name = 'coderwhy';
print(name.runtimeType); // String
name = 18;
print(name.runtimeType); // int
3.2.3final&const的使用
final和const都是用于定义常量的, 也就是定义之后值都不可以修改
final name = 'coderwhy';
name = 'kobe'; // 错误做法
const age = 18;
age = 20; // 错误做法
final和const有什么区别呢?
- const在赋值时, 赋值的内容必须是在编译期间就确定下来的
- final在赋值时, 可以动态获取, 比如赋值一个函数
main(List<String> args) {
const name = getName(); // 错误的做法, 因为要执行函数才能获取到值
final name = getName(); // 正确的做法
}
String getName() {
return 'coderwhy';
}
const放在赋值语句的右边,可以共享对象,提高性能:
- identical(a,b); // 比较两个实例是不是同一个地址;
class Person {
const Person();
}
main(List<String> args) {
final a = const Person();
final b = const Person();
print(identical(a, b)); // true
final m = Person();
final n = Person();
print(identical(m, n)); // false
}