码农知识堂 - 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();

  • 相关阅读:
    Mycat与ShardingSphere如何选择(未完待续)
    docker安装jenkins以及Permission denied错误的解决方法!
    第19章_体系结构
    MySQL视图
    【OpenCV4】使用 magnitude() 函数计算幅值(c++)
    Ubuntu 20.04 安装 flameshot
    HI3516DV300 图像输入
    TimeBasedRollingPolicy简介说明
    设计模式:工厂方法模式(C#、JAVA、JavaScript、C++、Python、Go、PHP):
    Android rom开发:9.0系统上实现4G wifi 以太网共存
  • 原文地址:https://blog.csdn.net/life491249957/article/details/126022486
    • 最新文章
    • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
      用 Hashids 优雅解决 C 端自增 ID 暴露问题
      V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
      LLVM Pass快速入门(四):代码插桩
      milkup:桌面端 markdown AI续写和即时渲染
      基于项目工程构建SBOM(软件物料清单)的研究
      鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
      .NET 中如何快速实现 List 集合去重?
      扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
      浅谈数据访问层
    • 热门文章
    • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
      奉劝各位学弟学妹们,该打造你的技术影响力了!
      五年了,我在 CSDN 的两个一百万。
      Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
      面试官都震惊,你这网络基础可以啊!
      你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
      心情不好的时候,用 Python 画棵樱花树送给自己吧
      通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
      13 万字 C 语言从入门到精通保姆级教程2021 年版
      10行代码集2000张美女图,Python爬虫120例,再上征途
    小工具 小游戏
    Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

    京公网安备 11010502049817号