1.Dart入门-变量

变量

可以不预先定义变量类型,会自动类型推断
没有初始化时,默认为null(数字类型的变量也一样,因为数字在dart中也是对象)
使用final声明只赋值一次的变量

final和const

final : 只能在初始化时赋值一次,不可以修改
const : 同时也是’final’,区别在于’const’更加严格,是编译时常量.

var name =  'bob';

内建类型

Number
  1. int : 根据平台的不同,整数值不大于64位。
  2. double : 64位(双精度)浮点数
  3. int和double 是num的子类
    int
//1 int 
int a = 123;//不能赋值double类型
// a = 123.4 //'double' can't be assigned to a variable of type 'int'.
print(a);//123

double

double b = 1.2345;
print(b);//1.2345
b = 24;
print(b);//24.0
print(a.toDouble());//转换

num

num a3 = 1;
a3 = 2.2 ;
print(a3);
print(a3.floor());//向下取整
print(a3.ceil());//向上取整
a3.abs();//

转换

// String -> int
var one = int.parse('1');
assert(one == 1);

// String -> double
var onePointOne = double.parse('1.1');
assert(onePointOne == 1.1);

// int -> String
String oneAsString = 1.toString();
assert(oneAsString == '1');

// double -> String
String piAsString = 3.14159.toStringAsFixed(2);
assert(piAsString == '3.14');
字符串

字符串可以用单引号或双引号创建一个字符串

var str = "123";
//单双引号来创建
String str2 = '''第一行
第二行
第三行
''';//三个引号

可以用${expression}表达式的值放入字符串中

// 2.字符串拼接
  String s1 = "hello";
  String s2 = "world";

  print("$s1 $s2");
  print(s1+" - "+s2);
  final String s3 = "123" ;
// s3 = "yuan";//Can't assign to the final variable 's3'.
print(s3);

字符串字面量是编译时常量,只要任何内插表达式都是编译时常量,计算结果为null或数值、字符串或布尔值

// These work in a const string.
const aConstNum = 0;
const aConstBool = true;
const aConstString = 'a constant string';

// These do NOT work in a const string.
var aNum = 0;
var aBool = true;
var aString = 'a string';
const aConstList = [1, 2, 3];

const validConstString = '$aConstNum $aConstBool $aConstString';
// const invalidConstString = '$aNum $aBool $aString $aConstList';//报错
print(validConstString);//0 true a constant string

Bool

true/false 只有这两个值

bool res = true;

Lists

列表类型,相当于数组

  • 列表初始化
//list 列表类型,
  var list = [1,2,34];
  List arr = [123,321];
  var ll = new List();
  print(list);
  • 常用操作
//常用操作
arr[0] = 100;
print(arr[0]); // 100
arr.add(300);//添加一个
arr.removeAt(1);//删除

var arr2 = const [1,2];//定义一个不可变数组
arr.indexOf(23);//-1 没有 返回下标
arr.forEach((element) {//遍历
  print(element);
});

Maps

字典类型: key : value 都可以是任意类型

  • 初始化
var user = {"name":"yh","age":20};
  print(user);//{name: yh, age: 20}

  Map dic0 = {};
  print(dic0);
  • 添加键值对 和 遍历
var user3 = new Map();
  user3["name"] = "yh1";
  print(user3);//{name: yh1}
  
  user.forEach((key, value) { 
    print("key = $key  value = $value");
  });

如果你要获取的键不再map中,将会返回一个null.
使用.length获取map中元素的个数


Runes 字符

Runes代表字符串的UTF-32字符集
\u + 4位16进制数
笑脸表情(😆)的编码\u{1f600}.

 var  heart = "\u2665";
  print(heart);//♥
  Runes heart2 = new Runes("\u2665 \u2452");
  var clapping = '\u{1f600}';
  print(clapping);
  print(clapping.codeUnits);
  print(clapping.runes.toList());

  Runes input = new Runes(
      '\u2665  \u{1f605}  \u{1f60e}  \u{1f47b}  \u{1f596}  \u{1f44d}');
  print(new String.fromCharCodes(input));
}

//运行效果如下
😀
[55357, 56832]
[128512]
♥  😅  😎  👻  🖖  👍
 

Symbols(符号)

在反射中使用很普及 用来定义一个不会被改变的标识符,不会被混淆的名字

  • 初始化
var s1 = Symbol("name");
print(s1);
var s2 = #it;
print(s2);
/*
Symbol("name")
Symbol("it")
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值