码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Dart(4)-类型与运算


    一、重要概念

    1.可以放在变量中的所有东西都是一个对象,每个对象都是一个类的实例。数字、函数和 null对象。除了null,所有对象都继承自Object该类。

    2.尽管 Dart 是强类型的,但类型注释是可选的,因为 Dart 可以推断类型。在上面的代码中,number 被推断为类型int

    3.如果您启用null 安全,则变量不能包含,null除非您说它们可以。您可以通过在变量?类型的末尾放置一个问号 ( )来使变量可以为空。例如,一个类型的变量int?可能是一个整数,也可能是null. 如果你知道一个表达式永远不会计算为,null但 Dart 不同意,你可以添加!断言它不是空的(如果是,则抛出异常)。一个例子:int x = nullableButNotNullInt!

    4.当您想明确表示允许任何类型时,请使用该类型Object? (如果您已启用 null 安全)、Object, 如果您必须将类型检查推迟到运行时 —可以考虑特殊类型dynamic

    5.Dart 支持泛型类型,例如List(整数列表)或List(任何类型的对象列表)。

    6.Dart 支持顶级函数(例如main()),以及绑定到类或对象的函数(分别为静态和实例方法)。您还可以在函数内创建函数(嵌套或局部函数)。

    7.同样,Dart 支持顶级变量,以及绑定到类或对象的变量(静态和实例变量)。实例变量有时称为字段或属性。

    8.与Java,Dart不具备关键字public,protected和private。如果标识符以下划线 ( _)开头,则它对其库是私有的。有关详细信息,请参阅 库和可见性。

    9.标识符可以以字母或下划线 ( _)开头,后跟这些字符加数字的任意组合。

    10.Dart 有表达式(有运行时值)和 语句(没有)。例如,条件表达式 condition ? expr1 : expr2的值为expr1orexpr2。将其与没有价值的if-else 语句进行比较。一个语句通常包含一个或多个表达式,但一个表达式不能直接包含一个语句。

    11.Dart 工具可以报告两种问题:警告和错误。警告只是表明您的代码可能无法工作,但它们不会阻止您的程序执行。错误可以是编译时或运行时。编译时错误完全阻止代码执行;运行时错误会导致在代码执行时引发异常。

    二、数据类型

    基本数据类型说明
    int整型
    double浮点型
    numnum是int,double的基类
    String字符类型
    bool布尔

    Dart中的基本数据类型中,基本和Java相似都有int,double,String等类型,区别是没有像short,float,char这样的小类型。所有类型都是对象,不需要像Java一样拆箱装箱的操作。例如:String age = 20.toString();数字也是对象,可以直接进行方法操作。

    集合说明
    List列表集合
    Map键值对
    Set无序集合

    三、算术运算符

    运算符说明
    +加
    -减
    *乘
    /除
    ~/取整
    %取余
    ++自增
    --自减

    四、关系运算符

    运算符说明
    ==判断值或内容是否相等
    !=判断是否不相等
    >大于
    <小于
    >=大于等于
    <=小于等于

    五、逻辑运算符

    位运算符说明
    &与
    |或
    ^异或
    !取反
    &&短路与
    ||短路或

    六、赋值运算符(复合运算符)

    运算符说明
    +=int i = 2; print(i+=5); 输出:7
    -=int i = 2; print(i-=5); 输出:-3
    *=int i = 2; print(i*=5); 输出:10
    /=double i= 2; print(i/=5);输出:0.4
    %=int i = 2; print(i%=5); 输出:2
    ??=int i; i ??= 20; print(i); //如果变量没有赋值才进行赋值,否则不进行赋值

    七、条件表达式

    三目运算符

    1. int i = 1;
    2. int j = 2;
    3. print(i < j ? 'A':'B');
    4. //输出:A

    ??运算符,如果??前面的表达式为null,则使用??后面的值

    1. int i=1;
    2. int j = 2;
    3. print(i ?? j);
    4. //输出:1
    1. int i;
    2. int j = 2;
    3. print(i ?? j);
    4. //输出:2

    八、其他操作符

    ?. 判空引用操作符

    1. String str;
    2. int len = str?.length; //如果没有?,会报错
    3. print(len); //null

    as类型转换

    1. num a = 1;
    2. int b = a as int;
    3. print(b);

    is/is! 类型判断

    1. int b = 1;
    2. print(b is int);

    .. 级联操作符

    1. final Set _elements = HashSet();
    2. final List elements = _elements.toList()..sort();

  • 相关阅读:
    CloudKit提示Permission Failure:Invalid bundle ID for container 错误的超详细解决
    Mysql子查询
    SpringBoot+Vue项目篮球竞赛预约平台
    导入Excel文件的各种常见方法
    前端渲染后端返回的HTML格式的数据
    LeetCode·135.分发糖果·贪心
    5月第3周榜单丨飞瓜数据B站UP主排行榜单(哔哩哔哩)发布!
    Linux系统配置及服务管理-07-文件系统及RAID
    7个理由让你的组织爱上OKR
    外卖市场繁荣背后,外卖员保障缺失的困境与突围
  • 原文地址:https://blog.csdn.net/life491249957/article/details/126022486
    • 最新文章
    • 攻防演习之三天拿下官网站群
      数据安全治理学习——前期安全规划和安全管理体系建设
      企业安全 | 企业内一次钓鱼演练准备过程
      内网渗透测试 | Kerberos协议及其部分攻击手法
      0day的产生 | 不懂代码的"代码审计"
      安装scrcpy-client模块av模块异常,环境问题解决方案
      leetcode hot100【LeetCode 279. 完全平方数】java实现
      OpenWrt下安装Mosquitto
      AnatoMask论文汇总
      【AI日记】24.11.01 LangChain、openai api和github copilot
    • 热门文章
    • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
      奉劝各位学弟学妹们,该打造你的技术影响力了!
      五年了,我在 CSDN 的两个一百万。
      Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
      面试官都震惊,你这网络基础可以啊!
      你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
      心情不好的时候,用 Python 画棵樱花树送给自己吧
      通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
      13 万字 C 语言从入门到精通保姆级教程2021 年版
      10行代码集2000张美女图,Python爬虫120例,再上征途
    Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
    正则表达式工具 cron表达式工具 密码生成工具

    京公网安备 11010502049817号