美文网首页
2023-05-30 flutter 操作符as as? as!

2023-05-30 flutter 操作符as as? as!

作者: 我是小胡胡123 | 来源:发表于2023-05-29 19:32 被阅读0次

flutter 操作符as as? as!

as

在Flutter中,as操作符用于类型转换或类型断言。它允许你显式地告诉编译器将一个对象视为特定的类型,前提是对象的实际类型与指定的类型兼容。

以下是在Flutter中使用as操作符的示例:

var obj = someObject as SomeType;

在上面的示例中,someObject被强制转换或断言为SomeType类型。如果someObject不是SomeType类型或其子类型,将在运行时抛出TypeError。

另外,as?和as!操作符是在Dart 2.12中引入的。这些操作符用于空安全类型转换,并与Dart 2.12引入的空安全特性配合使用。

as?

var obj = someObject as? SomeType;

可以是null类型或者SomeType 类型或其子类型。
如果类型不一致,异常。

as!

var obj = someObject as! SomeType;

只能是SomeType 类型或其子类型
如果类型不一致,异常。

测试代码:

   final List<dynamic> args = [
    null,
    '1',
    1,
  ];
  var a = args[0] as String?;
  print(a);

  try {
    var b = args[0] as int?;
    print(b);
  } catch (e) {
    print('异常了$e');
  }

  try {
    var b2 = args[1] as int?;
    print(b2);
  } catch (e) {
    print('异常了$e');
  }

  print(args);

运行结果:
null
null
null
异常了TypeError: "1": type 'String' is not a subtype of type 'int?'
[null, 1, 1]

相关文章

  • Dart基本语法学习记录

    参考《Flutter实战》 独特语法: 1、可选命名参数 2、..(级联操作符) 3、?.(条件成员访问运算符) ...

  • Flutter空操作符

    ?? & ??= 如果expr1为null,那么将expr2赋值给expr1, 反之如果不为null,就将expr...

  • 有些疲倦

    杨素芳 中原焦点团队 高五 坚持分享1590天 2023-05-30 天气热了起来,感觉倦怠、瞌睡、头脑不清醒...

  • Learn Dart Based on Java

    在Java的基础上快速学习Dart语言,快速进入Flutter项目开发。 例1:操作符 例2:数据类型 num g...

  • Rxjava2-二、操作符

    Rxjava记录总结操作符:创建操作符、转换操作符、合并操作符、过滤操作符、其他操作符、条件操作符. 创建操作符 ...

  • Kotlin 笔记(二)集合和函数操作符

    总数操作符 过滤操作符 映射操作符 元素操作符 生产操作符 顺序操作符

  • 走进RxJava源码(三) -- 创建型操作符

    创建型操作符 create操作符 just操作符 fromArray操作符 empty操作符 range 操作符

  • RxJava2操作符

    操作符分类 操作符分类有十三种: 变换操作符 过滤操作符列表 组合操作符 错误处理操作符 辅助操作符 条件操作符 ...

  • js运算符与表达式

    操作符 一元操作符:++,-- 算术操作符:+,-,*,/,% 关系操作符:>,<,>=,<= 相等操作符:==,...

  • 操作符和表达式

    操作符 一元操作符(++,--) 算术操作符(+,-,*,/,%) 关系操作符(>,<,>=,<=,) 相等操作符...

网友评论

      本文标题:2023-05-30 flutter 操作符as as? as!

      本文链接:https://www.haomeiwen.com/subject/yytsedtx.html