变量与常量
声明变量
var lll
默认值是null
dynamic 声明可以改变类型
使用final 和 const 进行修饰一个常量
例:
var number;
number = 15;
print('$number');
number = '2' //类型可变
print(number)
final c = 30
print(c)
const d = 50
print(d)
- const 是一个编译时常量
- final 常量在第一次使用时被初始化
- 类级别常量 static const PI = 3.1415
内置类型
(1) Number (数值)
(2) String (字符串)
(3) Boolean (布尔型)
(4) List (列表)
(5) Map (键值对)
(6) Runes (符号字符)
(7) Synbols (标识符)
数值型
num a = 10
数值型操作
(1)运算符:+、-、*、/、~/、%
(2)常用属性:isNaN、isEven、isOdd
(3)常用方法:round()、floor()、ceil()、toInt()、toDouble()、abs()
字符串
(1)使用单引号、双引号创建字符串
(2)使用三个引号或双引号创建多行字符串
(3)使用r创建原始raw字符串
字符串操作
(1)运算符:+ * == []
(2)差值表达式:${expression}
(3)常用属性:length isEmpty isNotEmpty
(4)常用方法:contains() subString() startsWith() endsWith() indexOf() lastIndexOf() toLowerCase() toUpperCase() trim() trimLeft() trimRight() split() replaceAll()
List与数组
var list = [1,2,3];
var list2 = new List();
var list3 = const[1, 2, 3];
常用方法
length() add() insert() remove() clear() indexOf() lastIndexOf() sort() sublist() asMap() forEach() shuffle()
var list = ['one', 'two', 'three'];
print(list.length);//获取长度
list.add('four');
print(list);
list.remove('two');
print(list);
list.insert(1, 'two');
print(list);
print(list.indexOf('one'));
print(list.sublist(2));
list.forEach(print);
list.shuffle(); //随机打乱List里元素的顺序
print(list);
Map
Map game = {"name":"Switch", "company":"任天堂"};
Map game = const{"name":"Switch", "company":"任天堂"};
Map game = new Map();
game['name'] = "Switch";
game['company'] = 'GameBoy';
game.remove('name')
game.clear()
dynamic & Object
var name1 = ‘abc’;
Object name2 = ‘def’;
dynamic name3 = ‘hij’;
dynamic obj=‘校长’;
obj[‘age’] = 20; // NoSuchMethodError
as和is关键字
dynamic obj = <String, int>{};
if(obj is Map<String, int>){
obj[‘age’] = 20;
}
var map = obj as Map<String, int>;
运算符
三目运算符
int a = 20;
var va1 = a > 10 ? a : 0;
~/除法,返回整数结果(取商)
级联操作符
String s = (new StringBuffer()
异常
try{
} on Exception {
} catch(e){
}
可选参数
// 可选参数
void userSetting({int age, String name}) {}
//必选参数
void userSettings({@required int age, @required String name}) {}
// 默认参数
void userSettingss({int age, String name, String option = '小明'}) {}
函数
void printItem(String item){
print(item);
}
void testfun() {
var users = ['1', '2', '3'];
users.forEach(printItem); //函数作为参数传递
var say = (name){
print(name);
};
say('过年了');//函数作为不变量
}