当前位置: 首页 > 知识库问答 >
问题:

“as”关键字在Dart语言中起什么作用

凌修伟
2023-03-14

我对“作为”关键词的用法感到困惑。

它是强制转换运算符还是别名运算符?

我在互联网上遇到了以下代码,看起来像一个演职人员:

var list = json['images'] as List;

这是什么意思?

共有3个答案

孔鹤龄
2023-03-14

正如语言之旅所说:

当且仅当您确定对象属于特定类型时,使用as运算符将对象强制转换为该类型。

以下是您的例子:

var list = json['images'] as List;

您可以在此处使用asjson['images']转换为

丁震博
2023-03-14

只需添加as关键字,现在由linter标记,他们希望您使用类似is的检查

if (pm is Person)
  pm.firstName = 'Seth';

你可以在这里读更多https://github.com/dart-lang/linter/issues/145

刁浩言
2023-03-14

as在不同的上下文中意味着不同的东西。

它主要用作类型转换运算符。从飞镖语言之旅:

as:类型转换(也用于指定库前缀)

它链接到一个解释,说明如何使用as导入库添加前缀,以避免名称冲突。(as被重用以执行不同的操作,以避免需要额外的关键字。)

 类似资料:
  • 具体来说,我正在尝试这个代码: 但它给出了错误 无法访问静态方法main中的非静态字段 所以我把的声明改为: 它起作用了。把这个关键字放在声明之前意味着什么?它到底会对这个对象做什么和/或限制什么?

  • 问题内容: 我正在学习如何将sqlite3与python结合使用。我要遵循的教科书中的示例是一个数据库,其中每个“国家/地区”记录都有一个“地区”,“国家/地区”和“人口”。 这本书说: 以下代码段使用CONSTRAINT关键字来指定要创建的表中没有两个条目的地区和国家/地区具有相同的值: 请您在这里解释一下。如果我删除它,似乎仅PRIMARY KEY语句就可以确保每个国家/地区在该地区都有唯一的

  • Dart中的和关键字有什么区别?

  • 通过前面的学习我们了解到切片其实就是多个相同类型元素的连续集合,既然切片是一个集合,那么我们就可以迭代其中的元素,Go语言有个特殊的关键字 range,它可以配合关键字 for 来迭代切片里的每一个元素,如下所示: 第 4 行中的 index 和 value 分别用来接收 range 关键字返回的切片中每个元素的索引和值,这里的 index 和 value 不是固定的,读者也可以定义成其它的名字。

  • 问题内容: 我正在网上关注Java教程,尝试学习该语言,并且它在使用数组的两种语义之间反弹。 和: 该教程从未真正提到过为什么它会在两者之间来回切换,所以我对该主题进行了一些搜索。我目前的理解是,操作员正在创建“ longs数组”类型的对象。我 不 明白的是为什么我要那个,那有什么后果? 是否存在某些特定于“数组”的方法,除非它是“数组对象”,否则这些方法对数组不起作用? 有什么我 不能 用普通数

  • 问题内容: 怎么办?例如在函数中: 问题答案: 如果使用(或-ea简称)启动程序,则此语句 相当于 如果不使用此选项启动程序,则assert语句将无效。 例如,;在你的问题中发布的,等同于 (如果你启动的是。) Java语言规范assert正式为:14.10。该声明说: 14.10。的声明 的断言是一个含有一个布尔表达式语句。断言是启用还是禁用。如果启用了断言,则断言的执行将导致对布尔表达式进行求