一 变量和数据类型
1,定义变量的方法:var 变量名; var 变量名=**; 数据类型 变量名; 数据类型 变量名=***;
2,基本的数据类型:
int:整数类型,(var a=1; or int a=1;)
double : 浮点类型,(var a=1.1; or double a=1.1;)
num:即可整数类型,也可以是浮点数类型(num a = 1.1)
String:字符串类型 (var name="xiaoming"; or String name = 'xiaoming';)
字符串可以使用¥符号进行与其他的是数据类型进行拼接(String str = "a = $a"; or cc='${bb}';)
length:查看字符串的长度(int b = a.length)
bool:布尔类型,就只有两个值,false and true
List:列表类型(var a=[1,2,3,4]; or List a=[1,2,'qq',1.2]),列表数据类型里面可以放其他的数据类型
通过索引进行取值,从0开始:var element = list[0];
length:查看列表的长度,也就是几个元素(int length = list.length;)
如果只想存一种数据类型的数据,那要借助泛型(List<String> list3 = <String>['a', 'b', 'c'];)其他的数据类型就会报错
Map:相当于字典类型(Map map = {'Apple' : '苹果', 'Banana' : '香蕉', 'Peach' : '桃子', 1 : '1', true : 0};)
根据key取值(String value = map['Apple'];)
Map 的键和值的数据类型也可以是指定的(Map<int, String> map = <int, String>{1 : 'a', 2 : 'b', 3 : 'c'};)如果放入其他的数据类型就会报错
二,if判断
var year = 18; 单支判断: if (year>=20){ print('大了'); } 双支判断 if (year>=20){ print('大了'); }else{ print('小了'); } 多支判断 if (year > 20) { print('大了'); } else if (year == 18) { print('正好'); }else{ print('小了'); }
三,循环语句;
for (var object in flybyObjects) { print(object); } for (int month = 1; month <= 12; month++) { print(month); } while (year < 2016) { year += 1; }
四,函数
int test(int n){ if (n>0){return n;}else{ return -1; } }
五,导入模块
// Importing core libraries import 'dart:async'; import 'dart:math'; // Importing libraries from external packages import 'package:angular2/angular2.dart'; // Importing files import 'path/to/my_other_file.dart';
六,练习
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
// import 'dart:io'; int test(int n){ if (n>0){return n;}else{ return -1; } } var name="fang"; var year=18; var bot=4.10; var li = [name,year,bot]; void main() { print(li); if (year>=20){ print('大了'); }else{ print('小了'); } var aa; aa=test(0); print(aa); for (var i in li){ print(i); } for (int i =1;i<10;i++){ var aa =''; for (int j = i;j<10;j++){ var bb=i*j; var cc; if (bb > 9){ cc='${bb}'; }else{ cc='${bb} '; } aa = '${aa} ${i}*${j}=${cc}'; } int a=aa.length; print(a); // print(aa); } print(11%2); for (var i=1;i<101;i++){ if (i%2==0){ print(i); } } for (var i=1;i<101;i++){ if (i%2==1){ print(i); } } }
七,类
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
class Test{ String name; Test(this.name){ name=this.name; print(name); } int test_1(int n){ return n*2; } void test_3(){ print(this.name); if (this.name=="fang"){ print('yes'); }else{ print('no'); } } } // 单继承 class Test_1 extends Test{ int age; Test_1(this.age,String name):super(name); void test_4(){ var cc = "${name}今年${age}岁"; print(cc); } } // 多继承 class Test_2{ int astronauts; // Test_2(this.astronauts){ // astronauts=this.astronauts; // print(astronauts); // } void describeCrew() { print('Number of astronauts: $astronauts'); } } class TestMixins extends Test_1 with Test_2 { int year; TestMixins(this.year,age,name,astronauts):super(age,name); void test_mixins(){ print("test"); } } // 隐含api class Test_3{ String name; Test_3(this.name){ name = this.name; } void test_3(){ } } class TestImplement implements Test_3{ @override String name; TestImplement(this.name){ name=this.name; print(name); } @override void test_3(){ print(this.name); if (this.name=="fang"){ print('yes'); }else{ print('no'); } } } // 抽象类 abstract class Test_4{ void describe(); void describeWithEmphasis() { print('========='); describe(); print('========='); } } class Test_5 extends Test_4{ @override void describe(){ print('test'); } } void main() { // class var test_2=new Test('fang'); int aa = test_2.test_1(10); print(aa); test_2.test_3(); // 单继承 var test_5 = new Test_1(18,'fang'); test_5.test_4(); test_5.test_3(); // 多继承 var testmixins = new TestMixins(2000,18,'fang',1); testmixins.test_4(); testmixins.describeCrew(); testmixins.test_mixins(); // 隐含api var testimp = new TestImplement('fang'); testimp.test_3(); //抽象类 var test5 = new Test_5(); test5.describeWithEmphasis(); }