Mir*_*ili 9 types strong-typing dart
根据Dart的网站
Dart是一种健全的语言.
上面句子中"声音"的含义是什么?"声音"相当于"音频"(我可以在上面的声明中交换它们)吗?
我在其他主要编程语言中找不到任何类似的概念.任何人都可以提供其他声音语言的例子吗?
Pac*_*ane 10
什么是健全的?
健全性是为了确保您的程序无法进入某些无效状态.声音类型系统意味着您永远不会进入表达式求值为与表达式的静态类型不匹配的值的状态.例如,如果表达式的静态类型是String,则在运行时保证在评估它时只获取字符串.
像Java和C#中的类型系统一样,强模式是合理的.它使用静态检查(编译错误)和运行时检查的组合来强制执行该稳健性.例如,将String赋给int是编译错误.如果对象不是字符串,则使用as作为字符串将对象转换为字符串将失败,并显示运行时错误.
Dart是作为可选的类型语言创建的,不是声音.例如,在Dart中创建包含整数,字符串和流的列表是有效的.您的程序将无法编译或运行,因为该列表包含混合类型,即使该列表被指定为float列表但包含除浮点值之外的所有类型.
在经典的Dart中,问题发生在运行时 - 从列表中获取Stream但是获取另一个类型会导致运行时异常并且应用程序崩溃.例如,以下代码将类型dynamic(包含字符串)的列表分配给int类型的列表.迭代列表并从每个项中减去10会导致运行时异常,因为没有为字符串定义减运算符.
健全的好处 声音类型系统有几个好处:
在编译时显示与类型相关的错误.声音类型系统强制代码明确其类型,因此在编译时会显示在运行时可能很难找到的与类型相关的错误.
更易读的代码.代码更容易阅读,因为您可以依赖实际具有指定类型的值.在声音飞镖中,类型不能说谎.
更易于维护的代码.使用声音类型系统,当您更改一段代码时,类型系统可以警告您刚刚破坏的其他代码片段.
提前更好(AOT)编译.虽然在没有强类型的情况下可以进行AOT编译,但生成的代码效率要低得多.
更清洁的JavaScript.对于Web应用程序,强模式的限制性更强的类型允许dartdevc生成更清晰,更紧凑的JavaScript.
为Dart带来健全性只需要为Dart语言添加一些规则.启用强模式后,Dart分析仪会执行三个附加规则:
在覆盖方法时使用正确的返回类型.
覆盖方法时使用适当的参数类型.
不要将动态列表用作类型列表.
小智 7
那与音频无关。
根据Wikipedia的说法:“也就是说,如果类型系统既健全(意味着它拒绝所有不正确的程序)又是可判定的(意味着可以编写确定程序类型是否正确的算法)”(参见https://zh.wikipedia.org/wiki/Type_system)
有关词源的考虑,请参阅“声音”。
TL; DR:在这种情况下,它表示“健壮”,“健康”。
归档时间: |
|
查看次数: |
2054 次 |
最近记录: |