Dart基础语法

252 阅读2分钟

来源:google

  1. 启动 *Dart文件具有.dart扩展名

*每个程序需要从main 方法启动

void main() {
    
}

ex:

void main() {
    print("Welcome to DART!");
}
  1. 数据类型: 数字
void main() {
    int a = 7; // 整数
    double b = 3.5; // 浮点数
    
    print('$a $b'); // $引用符
}
void main() {
    int a = 7;
    double b = 3.5;
    
    //num 统一类型(预计有坑)
    num c = 35;  
    num d = 4.5;
    
    print('$c $d');
}
  1. 数据类型: 字符串
void main() {
    String str = "Dart";
    
    print('I am learning the $str lang');
}
  1. 数据类型: 布尔
void main() {
    bool flag = true;
    
    print(flag);
}
void main() {
    bool flag = false;
    
    print(flag);
}
  1. var

var is a keyword that can declare any data type

runtimeType prints the type of the variable declared

var 是一个标识所有数据类型的变量

runtimeType 打印变量类型

void main() {
    var x = "Dart";
    print(x.runtimeType);
    var y = 4.5;
    print(y.runtimeType);
}
  1. 转换数据类型
void main() {
    var x = "4";
    int number = int.parse(x); // String转为int
    
    var y = "4.6";
    double dNum = double.parse(y); // String转为double
    
    var z = 55;
    String s = z.toString(); // int转为String
}
  1. Dart中的列表
void main() {
    var a = [1, 2, 3];
    var b = ["hello", "world"];
    var c = [1, "abc", 4.3]; // 可以不同类型在一个数组中
}
  1. Dart中的map(字典)
void main() {
    var maps = {
        "name":"John",
        "age":45
    };
}
// 输出Maps
print(maps);
print(maps.keys);
print(maps.values);
print(maps['name']);
  1. final 变量
void main() {
    final int x = 45;
    x = 35;
}
// 报错
// final 关键字修饰的变量只能被设置一次, 不能修改.
  1. 方法有参数和返回值
void main() {
    int res = getResult(5); // 调用方法
    print(res);
}

int getResult(int x) { // 有一个 int 类型的返回值 和 一个int类型的参数
    return x*x;
}
  1. 方法2有参数无返回值
void main() {
    var proceryList = ["Apples", "Oranges"];
    printGrocery(proceryList);
}

void printGrocery(List<String> list) { // 参数指定String类型的List
    for(var item in list) { // for in 循环
        print(item);
    }
}
  1. 方法3参数是可选类型
void main() {
    var groceryList = ["Apples", Oranges];
    printGroceryList(groceryList);
}

void printGrocery(List<String> list, [double price]) { // ? 用[]来标识可选类型 -- 好奇怪
    for(var item in list){
        print(item);
    }
    print(price);// ? 可选类型也不需要做判断和特殊处理?
}
  1. 空值检查
if(price==null) // 不需要大括号 空类型用null标识
    print("Free");
else
    print(price);

// null aware operators
print(price??"Free");
  1. 参数命名
// 调用方法
printGrocery(price: 299.0, list: groceryList);
// 实现方法 
void printGrocery(({List<String> list, double price}) { // 用大括号标识要命名的参数?
    
}
  1. 字符串插入
print('Price is ${price??"Free"}');
  1. 类的实现
void main() {
    Person pObj = new Person(name: "Rahul", age: 5); // pObj 是一个对象
    print(pObj.name)
}

class Person{ // class 关键词
    String name;
    int age;
    
    Person({this.name, this.age}); // this 关键词
}
  1. => 箭头方法 ??
void printName() {
    print(name);
}

// 可以转换为

void printName => print(Name);
  1. 类成员和类方法
void main() {
    print(Constants.ID); // 调用静态类变量
    print(Constants.getID()); // 调用静态类方法
}

class Constants {
    static String ID = "31415926"
    static String getID() {
        return 'ID is $ID';
    }
}

更多学习资源:

youtube

google

hackr

来源:google