Dart基本语法学习一

324 阅读2分钟

变量与常量

1、使用var声明变量,可赋予不同类型的值; 2、未初始化时,默认为null; 3、使用final声明一个只能赋值一次的变量; 4、使用const声明常量;使用const声明的必须是编译器常量。

var a = 10;
var b;
final c = 11;
c = 20;//error: 'c' a fanal variable,can only be set once.
const d = 20;
d = 50;// error: Constant variables can't be assigned a value. 

内置类型

  • 数值型-Number
  • 字符串-String
  • 布尔型-Boolean
  • 列表-List
  • 键值对-Map
  • Runes、Symbols(不常见)

数值型 - 关键字 num

  • 整型 int (int extends num)
  • 浮点型 double (double extends num)
num a = 10;
a = 10.9;
int b = 100;
b = 100.5;//error: int不能赋值double型.
double c = 1000.5;
c = 1000;//error: A value of type 'int' can't be assigned to a variable of type 'double'.

数值型操作

  • 运算符 : +、-、*、/、~/、%
    加、减、乘、除、取整、取余 常用属性: isNaN、isEven、isOdd 是否是非数字、是否是偶数、是否是奇数 常用方法: abs()、round()、floor()、ceil()、toInt()、toDouble()
  int aa = 12;
  double bb = 5.5;
  int cc = 11;
  printf(aa + bb);
  printf(aa - bb);
  printf(aa * bb);
  printf(aa / bb);
  printf(aa ~/ bb);
  printf(aa % bb);
  printf(0.0 / 0.0);
  printf(aa.isEven);
  printf(cc.isOdd);
17.5
6.5
66.0
2.1818181818181817
2
1.0
NaN
true
true

字符型 - 关键字 String

  • 使用单引号、双引号创建字符串
  • 使用三个单引号或双引号创建多行字符串
  • 使用r创建原始raw字符串
  String str1 = '哈哈';//单引号
  String str2 = "哈哈2";//双引号

//此处的mark down 不支持三引号,建议大家在IDE里写,其他字符串操作,自己去看api

  String str3 = '''你好,世界。
  好
  是的''';//三个单引号,创建多行字符串

  String str4 = """你好,张三。
  你好,李四。
  你好,王五""";//三个双引号创建多行字符串

布尔型- 关键字 Boolean

  • 使用bool 表示布尔类型(true、false)

List (数组)及常用操作

  • [],length //获取、修改元素,数组长度
  • add(),insert() //添加元素,插入元素
  • remove(),clear() //删除元素、清空数组
  • indexOf(),lastIndexOf()//获取元素位置
  • sort(),subList();//排序,获取子数组 +shuffle(),asMap(),forEach()//打乱数组、数组转字典、循环遍历
var list1 = [1,2,3];//创建数组
var list2 = const[1,2,3];//创建不可变数组
var list3 = new List();//构造创建数组
var list4 = [1,2,3,"dart",true];//数组内容可以是不同类型
print(list1[1]);//获取数组内元素
list1[1]= 4;//修改数组元素
list1.add(6);//添加元素
list1.insert(1, "iOS");//插入元素

键值对-Map 及常用操作

  • [],length//获取某个value,长度
  • isEmpty(),isNotEmpty//是否为空
  • Keys,values //所有key和value
  • containsKey(),containsValue()//是否包含某个key、value
  • remove()//移除某个元素
  • forEach()//循环
var map1 = {"key":"value",1:true};//创建map
printf(map1["key"]);//获取map的value
map1["key"] = "hello";//修改value
var map2 = const{"1":"dart","2":"iOS"};//创建不可变map

dynamic类型

WechatIMG18.png

  dynamic b = 20;
  b = "iOS"; 
  var list = new List<dynamic>();
  list.add(1);
  list.add("iOS");
  list.add(true);
  print(list);

更多内容,后续更新。。。