什么是声音编程语言?

时间:2018-03-19 10:33:57

标签: types dart strong-typing

根据Dart's website

  

Dart是一种健全的语言。

"声音"是什么意思?在上面的句子?是"声音"相当于" audio" (我可以在上面的陈述中交换那些)吗?

我无法在其他主要编程语言中找到任何类似的概念。任何人都可以提供声音语言的其他例子吗?

3 个答案:

答案 0 :(得分:8)

取自Dart's language guide

  

什么是健全?

     

健全性是指确保您的程序无法进入某些无效状态。声音类型系统意味着您永远不会进入表达式求值为与表达式的静态类型不匹配的值的状态。例如,如果表达式的静态类型是String,那么在运行时,您只能在评估它时获取字符串。

     

与Java和C#中的类型系统一样,强模式是合理的。它使用静态检查(编译错误)和运行时检查的组合来强制执行该稳健性。例如,将String赋给int是编译错误。如果对象不是字符串,则使用as作为String将对象转换为字符串将失败并显示运行时错误。

     

Dart是作为可选的类型语言创建的,不是声音。例如,在Dart中创建包含整数,字符串和流的列表是有效的。您的程序将无法编译或运行,因为该列表包含混合类型,即使该列表被指定为float列表但包含除浮点值之外的所有类型。

     

在经典Dart中,问题发生在运行时 - 从列表中获取Stream但是获取另一种类型会导致运行时异常并且应用程序崩溃。例如,以下代码将类型dynamic(包含字符串)的列表分配给int类型的列表。迭代列表并从每个项中减去10会导致运行时异常,因为没有为字符串定义减运算符。

     

健全的好处   声音类型系统有几个好处:

     

在编译时显示与类型相关的错误。   声音类型系统强制代码明确其类型,因此在编译时会显示在运行时可能很难找到的与类型相关的错误。

     

更易读的代码。   代码更容易阅读,因为您可以依赖实际具有指定类型的值。在声音飞镖中,类型不能说谎。

     

更易于维护的代码。   使用声音类型系统,当您更改一段代码时,类型系统可以警告您刚刚破坏的其他代码段。

     

提前更好(AOT)编译。   虽然可以在没有强类型的情况下进行AOT编译,但生成的代码效率却低得多。

     

更清洁的JavaScript。   对于Web应用程序,强模式的限制性更强的类型允许dartdevc生成更清晰,更紧凑的JavaScript。

  

为Dart带来健全性只需要为Dart语言添加一些规则。启用强模式后,Dart分析仪会执行三个附加规则:

     

覆盖方法时使用正确的返回类型。

     

覆盖方法时使用正确的参数类型。

     

请勿将动态列表用作键入列表。

答案 1 :(得分:5)

这与音频无关。

根据维基百科:“也就是说,如果类型系统是 声音 (意味着它拒绝所有不正确的程序)和可判定的(意味着可以编写一个算法,确定程序是否输入良好)“(参见https://en.wikipedia.org/wiki/Type_system

关于词源的考虑,请参阅“健全”。

TL; DR:在这种情况下,它意味着“健壮”,“健康”。

答案 2 :(得分:-2)

在这种情况下,声音是一个形容词,意思是“状况良好”。

https://dictionary.cambridge.org/dictionary/english-japanese/sound