gpt4 book ai didi

dynamic - Dart 中动态类型和静态类型的区别

转载 作者:行者123 更新时间:2023-12-02 13:20:26 29 4
gpt4 key购买 nike

两个问题。第一的,下面是强类型。

String msg = "Hello world.";
msg = "Hello world again.";

并且,低于动态

var msg = "Hello world.";
msg = "Hello world again.";

上面两个'msg'有什么区别吗?

其次,如果我使用“new”关键字来启动变量,如下所示,

Map myMap = new Map;

为什么要指示变量“myMap”是一个Map实例(Map myMap),因为“new”关键字已经包含相同的含义?所以,这样不是可以吗

myMap = new Map;

因为“new”关键字已经暗示新启动的变量既是变量又是Map类型,所以我无法理解为什么通常“Map”关键字与变量名一起使用,甚至“var”也是如此。

有人知道这个(看起来有点多余)Dart 语法吗?

最佳答案

关于第一个问题,每个msg变量包含的内容没有区别。

对于 Map 问题,指定在声明时构造的变量的类型的原因是为了允许子类具有一定的灵 active 。以下面的代码为例:

class SubMap extends Map {
SubMap() : super();
}

Map map = new SubMap();

这里我们有一个变量 map,它包含一个 SubMap 对象作为其值,但是我们允许它包含 Map 类型的值(或子类 Map 的其他类型)稍后再进行。

使用 Dart 时要记住的主要一点是它是可选类型的。运行代码时,任何类型注释都没有任何区别(除非您在检查模式下运行)。类型注释的目的是帮助您的 IDE 和其他工具提供自动完成帮助、可能的警告等,这是其他完全动态语言(如 Javascript)无法提供的。

关于dynamic - Dart 中动态类型和静态类型的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25801005/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com