Dart-基础1

Dart 环境准备

1. 安装 Dart

Dart3 稳定版即将发布,可先下载测试版或开发版本

下载解压版Dart3

配置环境变量

查看版本

2. VS Code 安装 Dart 插件

3. VS Code 安装 Code Runner 插件

一个简单的Dart程序

// Define a function.
void printInteger(int aNumber) {
  print('The number is $aNumber.'); // Print to console.
}

// This is where the app starts executing.
void main() {
  var number = 42; // Declare and initialize a variable.
  printInteger(number); // Call a function.
}

main方法作为程序的入口;

//表示注释;

void代表无返回值;

var、int声明变量;

print、printInteger输出;

重要概念

  • 一切皆对象,一切对象都是类的实例,一切类都继承Object
  • Dart 是强类型语言,但是也可自动推断类型
  • 空安全:Null Safefy,变量不能为空,用?标记的类型可以为空
  • Dart 虽然是强类型语言,但也保留了关键字ObjectObject?dynamicvar提供类型转换

  • Dart 支持泛型,例如List<int>
  • Dart 支持顶级函数main(),绑定到类或对象的函数(静态方法、实例方法),局部函数
  • Dart 支持顶级变量,绑定到类或对象的变量(静态变量、实例变量),实例变量也就是字段或属性
  • 下划线_开头的方法或属性,是私有方法或私有属性

Dart 变量

创建并初始化一个变量

// 类型不可转换
var name = 'Bob';
// 类型可转换
Object name = 'Bob';
// 类型不可转换
String name = 'Bob';

初始化值

// 可为null类型,未初始化的变量的初始值为null
int? count;
assert(count == null);

late变量

可用于:

  1. 声明一个不可为null类型的,先声明后初始化的变量
    late String description;
    
    void main() {
      description = 'Feijoada!';
      print(description);
    }
  2. 延迟加载一个变量
    // This is the program's only call to readThermometer().
    late String temperature = readThermometer(); // Lazily initialized.

常量

final&const修饰的变量值不可修改

final name = 'Bob'; // Without a type annotation
final String nickname = 'Bobby';

const bar = 1000000; // Unit of pressure (dynes/cm2)
const double atm = 1.01325 * bar; // Standard atmosphere

差异

final 可以先声明后赋值,且只能赋值一次 在运行时取值 不可修改对象,但可修改属性 只可用于修饰变量 相同内容创建不同对象
const 声明时必须赋值 在编译时取值 不可修改对象和属性 也可修饰常量构造函数 相同内容指向同一对象

const还可用来创建常量值

var foo = const [];
final bar = const [];
const baz = []; // Equivalent to `const []`

 

内置类型

int 64位整型 可与String相互转换,可算术运算、按位运算
double 64位浮点型
String 字符串类型 可以单引号、双引号、三引号
bool 布尔类型 true/false
List List集合 有序,可重复,支持泛型
Set Set集合 无序,不可重复,支持泛型
Map key-value 键值对,支持泛型

Dart 运算符

算术运算符 关系运算符 逻辑运算符 赋值运算符 按位运算符
+ / == 等于 != 不等于 取反 = 简单赋值 << 算术左移 ~ 按位非 & 按位与
- ~/ 取整 > 大于 >= 大于等于 && 并且 ??= 为空则赋值 >> 逻辑右移 ^ 按位异或    
* % 取模 < 小于 <= 小于等于 || 或者 += 复合赋值 >>> 算术右移 | 按位或    

函数

在Dart中,函数也是对象,可以作为变量或参数

 

posted @ 2023-02-27 16:53  !ɹO  阅读(67)  评论(0编辑  收藏  举报