[英]What does the "as" keyword do in Dart language?
我对“as”关键字的使用感到困惑。
它是转换运算符还是别名运算符?
我在互联网上遇到了以下看起来像演员操作员的代码:
var list = json['images'] as List;
这是什么意思?
只是添加 as 关键字现在被 linter 标记,他们更喜欢你使用像 is 这样的检查
if (pm is Person)
pm.firstName = 'Seth';
正如语言之旅所说:
当且仅当您确定对象属于该类型时,使用 as 运算符将对象转换为特定类型。
按照你的例子:
var list = json['images'] as List;
您将在这里使用as
将json['images']
转换或转换为<List>
对象。
从另一个SO 帖子(谈论显式cast
与as
):
as ... 更像是一个断言,如果值类型不匹配 as 会导致运行时异常。
您也可以在导入包时使用它。 一个常见的例子是dart:convert as JSON
然后可以达到final foo = JSON.jsonDecode(baz)
它正在铸造,您的代码类似于:
List list = json['images'];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.