Flutter Dart 语言 基础

发布于 2024-10-18 05:39:53 字数 3516 浏览 7 评论 0

Dart 是强类型语言,需要进行类型约束

Dart 8 大内置类型

  1. Numbers ( num , int , double )
    • num 等效于 JavaScript 中的泛型数字类型
    • int 不包含小数部分的数值
    • double 64 位(双精度) 浮点数
  2. Strings ( String )
  3. Booleans ( bool )
  4. Lists ( List )

    列表,也称为数组

  5. Sets ( Set )
  6. Maps ( Map )
  7. Symbols ( Symbol )
  8. null ( Null )

更详细的解释

Dart 中的所有非空类型都是 Object 的子类型

关于 Numbers
  • intdouble 类型都共享 num 作为它们的父类:

Int 和 double 类型都共享 num 作为它们的父类:

  • Dart 将数字 Numbers 视为对象,所以数字可以使用它们自己的实用函数
    let rounded = Math.round(2.5);
    
    var rounded = 2.5.round();
    
关于 Strings
var a = 'This is a string.';
  • 插值

    使用单个标识符时可以省略大括号

    var food = 'bread';
    var str = 'I eat $food'; // I eat bread
    var str = 'I eat ${food}'; // I eat bread
    
  • 多行字符串
    1. 使用隐式字符串连接:Dart 连接任何相邻的字符串文字,即使分布在多行上
      final s1 = 'String '
          'concatenation'
          " even works over line breaks.";
      
    2. 在字符串的两边使用三个引号(单引号或双引号)
      final s2 = '''
      You can create
      multiline strings like this one.
      ''';
      
      final s3 = """
      This is also a
      multiline string.""";
      
关于 Booleans
var isBananaPeeled = false;

变量类型

  • 在声明中写入类型
String name;
  • 用于初始化变量赋值时,推断类型
var name = 'bob';

当分析器推断类型时,使用 varfinal

  • 如果没有提供 初始值显式类型 ,Dart 会将变量的类型推断为 全捕类型动态类型
// Declare a variable without a type or assigned value
// and Dart infers the 'dynamic' type
var name;
// Initialize the variable and the type remains `dynamic`
name = 'bob';
name = 5; // Allowed, as `name` has type `dynamic`.

变量修饰符

final

等同与 JS 的 const ,在其他代码读取变量值之前初始化该变量。一旦初始化,就不能更改该变量的引用。

只可以被赋值一次。但是是 运行时 的。被使用到的时候才会进行初始化, 如果只是被定义, 而没有被使用到, 那么这个变量一直没有被初始化 (可以理解为'懒加载')

const 变量修饰符

当 Dart 使用 const 时,它引用在编译时创建的特殊值。

只可以被赋值一次。一经定义就会在 编译期间 对其进行初始化。一般用于记录一些常量,例如宏

在 Dart 中,常量变量必须包含常量值。非常量变量可以包含常量值,将其标记为 const

var foo = const [];
// foo 不是常量,但它指向的值是。
// 你可以将 foo 重新分配给不同的列表值,但不能更改其当前列表值。

const baz = []; // 等同于 `const []`

另外,类可以有自己的 const 构造函数 ,它们将生成不可变的实例。

var

可以被赋值多次

注释

  • /* ... */
  • //
  • /// doc 注释
    /// The number of characters in this chunk when unsplit.
    int get length => ...
    

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

你的呼吸

暂无简介

0 文章
0 评论
24 人气
更多

推荐作者

玍銹的英雄夢

文章 0 评论 0

我不会写诗

文章 0 评论 0

十六岁半

文章 0 评论 0

浸婚纱

文章 0 评论 0

qq_kJ6XkX

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文