Dart基础

Android控件 Flutter Widget

View                        Widget
LinearLayout                Column、Row
RelativeLayout              Column+Row+Stack
ScrollView,ListView,RV      ListView
TextView                    Text
EditText                    TextField

Dart基础:

JIT:即时编译,开发期间,更快编译,更快的重载
AOT:事前编译,release期间,更快更流畅。

数据类型:

num:数据类型的父类,其有2个子类。int,double

num num1 = -1.0;
print(num1.abs()); // 求绝对值
print(num1.toInt()); // num 转int
print(num1.toDouble()); // num 转double

String字符串:

String str1 = '字符串', str2 = "双引号";
字符串拼接:$插值表达式拼接、类似Java使用+号拼接。
bool类型:bool flag = true;

List集合:

List list = [1,2,3, '集合'];
List<int> list2 = [1,2,3]; // 只能放数字类型,泛型int
// list2 = list; // 错误,类型转换错误。dynamic的list不能赋值给int的list。

// list 生成函数
List list4 = List.generate(10, (index) => index * 2);
// 遍历list常见方式。
for(int i=0; i<list.length; i++) {
    print(list[i]);
}
for(var o in list) {
    print(o);
}
list.forEach((val) {
    print(val);
});

map集合的使用。

Map names = {'xiaoming': '小明', 'xiaohong': '小红'};
Map ages = {}; // 初始化方法2.
ages['xiaoming']=16;
ages['xiaohong']=18;

// map遍历1
ages.forEach((k,v) {
    print('$k, $v');
});
// map遍历2
Map ages2 = ages.map((k,v){
    return MapEntry(v, k); // map颠倒。生成新的map。
});
// map遍历3
for(var key in ages.keys) {
    print('$key, ${ages[key]}');
}

/// 科普:dynamic,var,Object三者的区别。

  _moreType() {
    dynamic x = 'tom'; // 动态数据类型
    print(x.runtimeType); // 运行时类型:String
    x = 123;
    print(x.runtimeType); // int

    /// 一旦被定义,确定了类型,类型就不会改变,var不是动态类型。
    var a = 'tom';
    print(a.runtimeType); // String
    // a = 9; // 不能再被修改。

    /// Object: Dart对象的基类。
    Object o1 = "111"; // 确切类型,不可调用String的其他方法。
    print(o1.runtimeType); // String
    print(o1.toString());
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容