首页 » 休闲 » 正文内容
Dart基础类型变量定义
寻梦xunm| 96| 休闲
12天前

在 Dart 中,有多种内置的数据类型。以下是常见的几种类型及其示例:

  1. 整数 (int)

    • 用于表示整数值。
    • 示例:int d = 5;
  2. 浮点数 (double)

    • 用于表示带有小数部分的数值。
    • 示例:double pi = 3.14;
  3. 字符串 (String)

    • 用于表示文本。
    • 示例:String name = "Alice";
  4. 布尔值 (bool)

    • 用于表示真或假。
    • 示例:bool isTrue = true;
  5. 列表 (List)

    • 用于存储有序的集合。
    • 示例:List<int> numbers = [1, 2, 3];
  6. 集合 (Set)

    • 用于存储无序且唯一的集合。
    • 示例:Set<String> names = {"Alice", "Bob", "Charlie"};
  7. 映射 (Map)

    • 用于存储键值对。
    • 示例:Map<String, int> ages = {"Alice": 25, "Bob": 30};
  8. 动态类型 (dynamic)

    • 用于表示任何类型的值,编译器不会进行类型检查。
    • 示例:dynamic value = 5; value = "Hello";
  9. 空类型 (Null)

    • 用于表示空值。
    • 示例:Null nothing = null;
  10. 函数类型 (Function)

    • 用于表示函数。
    • 示例:Function add = (int a, int b) => a + b;
  11. 符号类型 (Symbol)

    • 用于表示符号,通常在反射中使用。
    • 示例:Symbol symbol = #name;

示例代码

void main() {
  // 定义一个整型变量 d,初始值为 5
  int d = 5;
  // 定义一个双精度浮点型变量 pi,初始值为 3.14
  double pi = 3.14;
  // 定义一个字符串变量 name,初始值为 "Alice"
  String name = "Alice";
  // 定义一个布尔型变量 isTrue,初始值为 true
  bool isTrue = true;
  // 定义一个整型列表 numbers,包含 1, 2, 3 三个元素
  List<int> numbers = [1, 2, 3];
  // 定义一个字符串集合 names,包含 "Alice", "Bob", "Charlie" 三个元素
  Set<String> names = {"Alice", "Bob", "Charlie"};
  // 定义一个字符串到整型的映射 ages,包含 "Alice" 对应 25,"Bob" 对应 30
  Map<String, int> ages = {"Alice": 25, "Bob": 30};
  // 定义一个动态类型变量 value,初始值为 5
  dynamic value = 5;
  // 将 value 的值修改为 "Hello"
  value = "Hello";
  // 定义一个空值变量 nothing,其值为 null
  Null nothing = null;
  // 定义一个函数 add,接受两个整型参数,返回它们的和
  Function add = (int a, int b) => a + b;
  // 定义一个符号变量 symbol,其值为 #name
  Symbol symbol = #name;

  // 打印变量 d 的值
  print(d);
  // 打印变量 pi 的值
  print(pi);
  // 打印变量 name 的值
  print(name);
  // 打印变量 isTrue 的值
  print(isTrue);
  // 打印列表 numbers 的值
  print(numbers);
  // 打印集合 names 的值
  print(names);
  // 打印映射 ages 的值
  print(ages);
  // 打印变量 value 的值
  print(value);
  // 打印变量 nothing 的值
  print(nothing);
  // 调用函数 add,传入 2 和 3,打印返回值
  print(add(2, 3));
  // 打印符号变量 symbol 的值
  print(symbol);
}

当你为变量、参数或另一个相关组件指定类型时,可以控制该类型是否允许 null 。要让一个变量可以为空,你可以在类型声明的末尾添加 ? 。

延迟初始化变量

指在声明变量时不立即初始化它,而是在第一次使用该变量时才进行初始化。这通常用于提高性能,因为它允许你在需要时才分配资源。

要在Dart中创建一个延迟初始化变量,你可以使用late关键字。以下是一个示例:

void main() {
  late String name;

  // 在这里,name变量还没有被初始化

  name = "Alice";

  // 现在,name变量已经被初始化了
  print(name); // 输出: Alice
}

在这个例子中,name变量被声明为late,这意味着它的初始化被延迟到了name = "Alice";这一行。在这之前,如果你尝试打印name,你会得到一个运行时错误,因为name还没有被初始化。

延迟初始化变量对于那些在程序启动时不需要立即使用,但在某个时刻会被使用的变量特别有用。它可以帮助减少内存使用,并提高程序的启动速度。

var定义变量

注意:Dart 中,使用 var 关键字定义变量时,类型会根据变量的初始值自动推导出来。这意味着你可以在声明变量时不指定类型,编译器会根据变量的初始值自动推断出类型。

使用var定义字符串类型

PS废话篇:定义字符串类型可以使用''单引号或者""双引号进行定义,只有定义字符串类型才使用双引号或者单引号,其他类型都不需要双引号或者单引号包裹。

下面这两种定义字符串(也可通过制定具体类型进行定义,例如通过"String"这个关键词定义一个字符串类型,"String namea = 'Bob';",注意的是通过“String”这个方法定义字符串还是需要使用''单引号或者""双引号。)方式是等价的:

var namea = 'Bob';
var nameb = "Bob";

使用var定义整型类型

注意:定义整型类型的时候就不需要单引号或者双引号,如果加上就变成了字符串类型

重要提示:定义整型类型的时候只能为正数或者负数

// 新手一般都会出现的错误如下面这种写法。
var namea = 5487Bob; // 像这种就是错误写法

var nameb = 123355; // 定义一个正数
var nameb = -123355; // 定义一个负数

使用var定义浮点数类型

注意:定义浮点数类型的时候就不需要单引号或者双引号,如果加上就变成了字符串类型

重要提示:定义浮点数类型的时候只能为正浮点数或者负浮点数

// 新手一般都会出现的错误如下面这种写法。
var namea = 548.7Bob; // 像这种就是错误写法

var nameb = 123355.00003668989; // 定义一个正浮点数
var nameb = -123355.00003668989; // 定义一个负浮点数

使用var定义布尔类型

重要提示:布尔类型只有true 和 false 两个值,所以定义的时候只能使用true 和 false

var nameb = abc; // 错误写法

var nameb = false; // 定义一个假布尔值
var nameb = true; // 定义一个真布尔值

使用var定义数组类型

重要提示:定义数组需要使用[]方括号进行包裹


var nameb = [1, 2, 3]; // 定义一个一维数组
var nameb = [1, 2, 3,[1, 2, 3]]; // 定义一个二位数组
var nameb = [1, 2, 3,[1, 2, 3,[1, 2, 3,[1, 2, 3]]],[1, 2, 3]]; // 定义一个多维数组

String字符串定义避坑

//报错原因是 string 类型名首字母未大写,Dart 中字符串类型的正确写法是 String。
String b = '5'; // 正确写法
string b = '5'; // 错误写法

List数组定义避坑

//报错原因是 list 类未定义。Dart 中定义列表应该使用 List,而不是 list。list 不是 Dart 语言中的有效关键字或类名
List<int> numbers = [1, 2, 3]; // 正确写法
list<int> numbsers = [1, 2, 3]; // 错误写法

Set集合定义避坑

//报错原因是 set 是 Dart 语言中的保留关键字,不能用作类型名。正确的类型名应该是 Set。
Set<String> numbers = {"Alice", "Bob", "Charlie"}; // 正确写法
set<String> numbers = {"Alice", "Bob", "Charlie"}; // 错误写法

Map映射定义避坑

//报错原因是 map 是 Dart 语言中的保留关键字,不能用作类型名。正确的类型名应该是 Map。
Map<String, int> numbers = {"Alice": 25, "Bob": 30}; // 正确写法
map<String, int> numbers = {"Alice": 25, "Bob": 30}; // 错误写法

Null定义避坑

Null nothing = null; // 正确写法
null nothing = null; // 错误写法

Function函数定义避坑

//报错原因是 function 关键字在 Dart 中并不存在,正确的关键字应该是 Function。
Function add = (int a, int b) => a + b; // 正确写法
function add = (int a, int b) => a + b; // 错误写法

Symbol符号定义避坑

Symbol symbol = #name; // 正确写法
symbol symbol = #name; // 错误写法

数组定义和遍历

void main(){
  // 定义一个整数列表 nums,包含 1 到 10 的整数
  List<int> nums=[1,2,3,4,5,6,7,8,9,10];
  //var nums = <int> [1,2,3,4,5,6,7,8,9,10];
  // 初始化变量 sum,用于存储列表中所有元素的总和,初始值为 0
  int sum=0;
  // 使用 for 循环遍历列表 nums 中的每个元素
  for(int i=0;i<nums.length;i++){
    // 将当前元素加到 sum 中
    sum=sum+nums[i];
  }
  // 打印 sum 的值,即列表中所有元素的总和
  print(sum);
}
none
0 赞 or 打赏
喜欢就打赏一点
微信 支付宝
20240430140454171445709417079.png
20240430140454171445709417079.png
隐私
Q Q:1340326824
邮箱:vipshiyi@qq.com
QQ群:422720328

我的音乐