zoukankan      html  css  js  c++  java
  • Dart语言学习-变量

    变量
    Dart里面万物皆对象,包括变量类型、函数。
    Dart 没有 byte、char 和 float。final 跟 Java 里的 final 一样,表示一个运行时常量,运行时赋值过后就不再改变,
    对应的const 表示编译时常量,编译的时候值就确定了。
    var是类型推断,类似于swift。
    Objective-C的初始化默认会给每个属性赋一个空值,比如nil或者0,Dart默认的变量初始化为null,包括int类型。
    如果变量用下划线修饰,那表示是一个私有变量。
    String
    类似于oc的NSString和Java的string,不可变对象。
    List 
    数组,初始化方式:var list = List<int>();添加元素:list.add(1);list.add(2);
    字面量创建list:var list2 = list[1,2];没有元素的list:var list3 = list<int>[];
    Dart的for循环和oc的for in类似:
    for(var x in list) {
     print(x);
    }

    Set

    集合:var set = Set<String>();
    set.add('foo');
    set.add('bar');
    assert(set.contains('foo'));

    Map

    字典:
    var map = Map<String, int>();
    // 添加
    map['foo'] = 1;
    map['bar'] = 3;
    // 修改
    map['foo'] = 4;
    // 对应的 key 不存在时,返回 null
    if (map['foobar'] == null) {
      print('map does not contain foobar');
    }
    var map2 = const {
      'foo': 2,
      'bar': 4,
    };
    var map3 = <String, String>{};
     

    dynamic 和 Object

    dynamic和object都可以接收任意类型的参数,但是object只能调用object支持的方法
    dynamic可以调用任何方法,但是调用不存在的方法是,会抛出NoSuchMethodError错误。
    例如:dynamic obj = 'string';
    obj['foo'] = 4; // 运行时抛出NoSuchMethodError
    Dart提供了运行时类型检测:is(类似于oc的isKindOfClass)
    dynamic obj = map<string,int>();
    if (obj is map<string,int>) {
    obj['foo'] = 42;
    }

    语句

    Dart里常见的 if/else,do while,while 和 switch 都没有什么特殊之处。switch 也支持 String 和 enum。

    函数

    Dart的函数和Java的类似,但是没有重载,这一点和oc一样,不存在参数不同函数名相同的函数。

    构造函数就是一个与类同名的函数,关键字 this 是指当前的,只有在命名冲突时有效,否则dart会忽略处理
    在dart里面,子类不能继承父类的构造函数,如果你没有声明构造函数,默认有构造函数,默认构造函数没有参数,调用父类的无参构造函数。
    子类不能继承父类的构造函数,dart使用默认构造函数 ,声明的属性都会被赋初值nil或者0。

    异常

    与Java类似,不同的是Dart可以抛出任何类型的对象

     
     
  • 相关阅读:
    Gitcafe绑定自定义域名
    如何优雅地使用Sublime Text
    使用Hexo搭建专属Blog
    How to Use Android ADB Command Line Tool
    雷军北大15分钟演讲:我至少有胆量去想(转)
    浅谈android中的目录结构
    react里 MD5加密
    git忽略相应文件夹,不上传
    antd-mobile的按需加载
    当react 项目使用px2rem
  • 原文地址:https://www.cnblogs.com/hadyt/p/10430981.html
Copyright © 2011-2022 走看看