• 加温后的啤酒
    2019-07-11
    老师,能详细解释下final和const吗。你说“const,表示变量在编译期间即能确定的值; final 则可以在运行时确定值”。
    那是否能理解为:在编译期间能确定的值 用const或者用final修饰都可以,但是在运行时确定的值,只能用final修饰??

    作者回复: 在定义const常量时,你必须直接赋一个字面量,而不能是一个变量或者公式;
    在定义final常量时,如何赋值就无所谓了,但赋值后就不能再改了。

    
     21
  • TerryGoForIt
    2019-07-11
    思考题:
    Dart 是支持泛型的,所以可以使用形如 List<dynamic> 和 Map<String, dynamic> 为集合添加不同类型的元素,遍历时判断类型用 is 关键字。

    作者回复: 如果类型是可枚举的,这样做是可以的。但不建议定义容器类型时用dynamic哈,最好还是明确下类型,比如放double和int的可以用num

     1
     18
  • davidzhou
    2019-07-14
    所有皆为对象,就可以通过反射机制获取对象的类型,不过,list和map不做类型约束的话,在读取里面数据会有很多坑,代码也不够健壮

    作者回复: 棒棒哒。纠正一个小问题:这里不是反射,是运行时类型。另外Flutter是不支持Dart 的反射的哈。

    
     3
  • 七分呗轻唱
    2019-07-11
    runtimeType 判断

    作者回复: 可以的。
    如果类型是可枚举的,用"if(v is num)" 或 "if(v is String)"也可以

    
     3
  • 于留月
    2019-07-11
    可以使用List<dynamic> 和 Map<dynamic>支持多种类型内部元素,遍历集合时,可以根据泛型确认数据类型

    作者回复: 可以的。不过不太建议用dynamic,如果是int和double,用num即可

    
     2
  • Phony Lou
    2019-07-11
    抛砖引玉哈,直接拿各个item的runtimeType属性,简单代码如下

    main() {
      var arr = [1,2,'s'];
      arr.forEach(
        (v) => print('The value is ${v}, and the type is ${v.runtimeType}')
      );
    }
    展开

    作者回复: 可以的。
    如果类型是可枚举的,用"if(v is num)" 或 "if(v is String)"也可以

     1
     1
  • Young
    2019-07-11
    类,方法参数,返回值都可以指定泛型,判断单个元素的类型可以使用is

    作者回复: 可以的

    
     1
  • Geek_183f9e
    2020-01-18
    今日打卡
    
    
  • cv0cv0
    2019-12-13
    Dart 支持扩展函数吗?

    作者回复: Dart 2.7才支持 https://dart.dev/guides/language/extension-methods

    
    
  • moran
    2019-11-12
    老师好,const和final可不可以理解为赋值后,值就不可更改?

    作者回复: final可以,const是声明后

    
    
  • sixgod
    2019-10-12
    用dynamic类型和object有什么区别吗

    作者回复: dynamic可以当任意类型使用

    
    
  • 陶先森来了
    2019-09-02
    我用Android Studio安装了Dart的安装包,版本是2.2.1的,但是我的项目是2.2.2以上的,请问如何升级Dart呢?还有就是能否单独安装Dart SDK?

    作者回复: 通常我们并不需要单独安装Dart SDK,flutter会自带(bin/cache/dart-sdk目录),并且会锁死flutter对应的dart版本。如果你想试用最新的功能,可以把flutter切到dev channel,dev channel没有锁死Dart版本,你可以自行替换

    
    
  • 晓冰
    2019-08-29
    对于Map和List 我在写swift时也是需要指定确定类型的,同一个字典或者数组类型一般都要一样,如果不一样处理起来麻烦,自己的程序就不要给自己挖坑了 哈哈。 只有在一种情况下我才会使用Any 就是提交服务器数据的时候,由于配置的数据类型不可能完全一样。

    作者回复: 赞

    
    
  • Eagle~
    2019-08-16
    文中的“实际上,你打开官方文档或查看源码,就会发现这些常见的运算符也是继承自 num:”不是很理解,为什么运算符能继承呢?

    作者回复: 参考了C++的实现

    
    
  • lf
    2019-08-01
    老师,flutter源码中构造函数都是用const,为什么呢

    作者回复: 常量构造函数,初始化完就不让改了

    
    
  • 春阳
    2019-07-17
    List 指定 length 后,默认数值都为null ,这是由于未初始化的变量都是 null
    特性,并且这时候可以在安全下标内进行赋值,但是不指定 length 的 List 则无法指定下标赋值,因为超出了下标边界。
    
    
  • 薛敬飞
    2019-07-13
    帮忙解释一下评论区中Dynamic?为啥不建议用这个?

    作者回复: 为了类型安全呀

    
    
  • 呼呼
    2019-07-12
    升级到最新的flutter 版本,打包生成ipa,app打开是空白的,请教一下,这个是什么原因呢?

    作者回复: debug环境正常吗

     1
    
我们在线,来聊聊吧