在Dart中,程序的入口方法是main()
函数。
在Dart中,可以使用关键字var
、final
和const
来声明变量。其中,var
可以用于声明任何类型的变量,final
和const
用于声明常量变量,不同之处在于const
表达式的值在编译时就已经确定了,而final
可以在声明时或在构造函数中初始化。
var name = "John";
final age = 30;
const PI = 3.14;
在Dart中,标识符必须以字母或下划线开头,不能以数字开头;标识符不能包含空格或特殊字符,如@、#、$等;标识符中的字母区分大小写。标识符的命名应该遵循驼峰命名法。
int myAge = 18;
String userName = "john";
在Dart中,常量可以使用final
或const
关键字来声明。常量和变量的区别在于,一旦初始化,常量的值就不能更改;而变量的值可以修改。
final height = 1.75;
const PI = 3.14;
Dart中的数值类型包括int
(整型)和double
(浮点型)。
int age = 18;
double height = 1.75;
Dart中的数值类型支持各种运算符,包括加、减、乘、除、取余等。
int a = 5;
int b = 2;
print(a + b); // 输出7
print(a - b); // 输出3
print(a * b); // 输出10
print(a / b); // 输出2.5
print(a % b); // 输出1
Dart中的字符串类型使用单引号或双引号括起来。
String hello = "Hello";
String world = 'world';
Dart中的布尔类型有两个值:true
和false
。
bool isGood = true;
bool isBad = false;
Dart中的List类型可以用来存储一组有序的数据,可以通过下标来访问其中的元素。
List<String> fruits = ["apple", "banana", "orange"];
List<int> numbers = new List();
numbers.add(1);
numbers.add(2);
numbers.add(3);
List<dynamic> list = new List<dynamic>();
list.add("hello");
list.add(123);
list.add(true);
Dart中的Map类型用于存储键值对,其中键和值可以是任何类型。
Map<String, String> fruits = {
"apple": "red",
"banana": "yellow",
"orange": "orange",
};
Map<String, int> scores = new Map();
scores["John"] = 80;
scores["Mary"] = 90;
在Dart中,可以使用is
关键字来判断一个对象是否属于某个类型。
String str = "Hello";
if (str is String) {
print("str is a string");
}
Dart中的关系运算符包括等于(==
)、不等于(!=
)、大于(>
)、小于(<
)、大于等于(>=
)和小于等于(<=
)。
在Dart中,可以使用!
、&&
和||
三个符号来进行逻辑运算。
bool isGood = false;
if(!isGood){
print("isBad");
}
bool isGood = true;
bool isBig = true;
if(isGood && isBig){
print("isGreat");
}
bool isGood = true;
bool isBig = false;
if(isGood || isBig){
print("isGood or isBig");
}
Dart中的赋值运算包括直接赋值(=
)、判断为空之后赋值(??=
)和复合赋值运算符(+=
、-=
、*=
、/=
、%=
、~/=
)。
int a = 5;
int a;
a ??= 5;
print(a); // 输出 5
int a = 5;
a += 3;
print(a); // 输出 8
在Dart中,可以使用if-else
语句、switch-case
语句、三目运算符和??
运算符来实现条件表达式。
int score = 80;
if (score >= 90) {
print("Grade A");
} else if (score >= 80) {
print("Grade B");
} else {
print("Grade C");
}
int score = 80;
switch (score) {
case 90:
print("Grade A");
break;
case 80:
print("Grade B");
break;
default:
print("Grade C");
}
int score = 80;
String grade = score >= 90 ? "A" : "B";
print(grade); // 输出 B
int a;
int b = a ?? 5;
print(b); // 输出 5
在Dart中,可以使用as
和is
来进行类型转换。
String str = "123";
int num1 = int.parse(str); // 字符串转整数
double num2 = double.parse(str); // 字符串转浮点数
int a = 5;
String b = a.toString(); // 数字转字符串
在Dart中,可以使用for
、while
和do-while
三种循环语句来处理重复执行的任务。
for (int i = 0; i < 10; i++) {
print(i);
}
int i = 0;
while (i < 10) {
print(i);
i++;
}
int j = 0;
do {
print(j);
j++;
} while (j < 10);
在循环中,可以使用break
和continue
关键字来控制程序的流程。
for (int i = 0; i < 10; i++) {
if (i== 5)
{ break; // 中断循环 }
if (i % 2 == 0) {
continue; // 跳过本次循环,进入下一次循环
}
print(i);
}
在Dart中,函数是一个带有名称和参数的代码块,可以重复调用。
int sum(int a, int b) {
return a + b;
}
Dart中的函数参数可以分为必需参数、可选位置参数和可选命名参数。
int sum(int a, int b) {
return a + b;
}
sum(1, 2); // 输出 3
int sum(int a, [int b = 0, int c = 0]) {
return a + b + c;
}
sum(1); // 输出 1
sum(1, 2); // 输出 3
sum(1, 2, 3); // 输出 6
int sum(int a, {int b = 0, int c = 0}) {
return a + b + c;
}
sum(1); // 输出 1
sum(1, b: 2); // 输出 3
sum(1, b: 2, c: 3); // 输出 6
在Dart中,可以使用匿名函数来定义一个没有名称的函数。
var sum = (int a, int b) {
return a + b;
};
print(sum(1, 2)); // 输出 3
在Dart中,所有东西都是一个对象。每个对象都是一个类的实例,所有的类都继承自Object类。
class Person {
String name;
int age;
void sayHello() {
print("Hello, my name is $name.");
}
}
var person = new Person();
person.name = "Tom";
person.age = 20;
person.sayHello(); // 输出 Hello, my name is Tom.
在Dart中,构造函数是一个特殊的函数,用于创建和初始化类的对象。
class Person {
String name;
int age;
Person(this.name, this.age);
void sayHello() {
print("Hello, my name is $name, I'm $age years old.");
}
}
var person = new Person("Tom", 20);
person.sayHello(); // 输出 Hello, my name is Tom, I'm 20 years old.
class Person {
String name;
int age;
Person(this.name, this.age);
Person.fromMap(Map<String, dynamic> map) {
name = map['name'];
age = map['age'];
}
void sayHello() {
print("Hello, my name is $name, I'm $age years old.");
}
}
var person = new Person.fromMap({"name": "Tom", "age": 20});
person.sayHello(); // 输出 Hello, my name is Tom, I'm 20 years old.
在Dart中,可以使用static
关键字来定义静态成员,静态方法和静态变量不需要实例化对象就可以访问。
class Person {
String name;
int age;
static String hobby = "Dancing";
Person(this.name, this.age);
static void sayHello() {
print("Hello, I love $hobby.");
}
}
Person.sayHello(); // 输出 Hello, I love Dancing.
在Dart中,可以使用try-catch
语句来捕获和处理异常。
try {
int result = 10 ~/ 0; // 抛出异常
} catch (e) {
print("Exception: $e"); // 输出 Exception: IntegerDivisionByZeroException
} finally {
print("Finally block."); // 输出 Finally block.
}
在Dart中,可以使用dart:io
库来进行文件操作。
import 'dart:io';
void main() async {
var file = File('example.txt');
var contents = await file.readAsString();
print(contents);
}
import 'dart:io';
void main() async {
var contents = 'Hello, world!';
var file = File('example.txt');
await file.writeAsString(contents);
}