标签:方法 浮点型 类型 直接 字符串操作 extends 初始化列表 pre 匿名
主函数
void main ( ) { }
声明变量
var a num a int a double a bool a = true
数据类型
特殊运算符 ~/ 向下取整
‘‘‘ hello dddd‘‘‘
表示多行字符串,保留换行
‘hello \n Dart‘ 会换行
String aa = r‘‘hello \n Dart"
不会换行.会输出\n
‘abc‘ * 2 == ‘abcabc‘
‘abc‘[1] == ‘b‘
字符串插值 " a + b = ${a + b}"
${xx}
是个表达式 只有一个变量插值可省略写成 $a
Map键值对
var qq = {‘first‘ : ‘Dart‘ , ‘second‘ : ‘java‘};
var q = const { ,,,, }
q = new Map()
qq[‘frist‘]
qq.forEach ( f ); void f( key , value ){.......}
var a = 10; a = "xxx";
dynamic a = 20; a="xxx";
var lis = new List\<dynamic\>();
这样声明的lis 可以使用各种类型的数据b ??= 10;
b是空的则是10,有值则不做改变.a~/=b
类似于 a+=bvar c = a ?? b
a为空时表达式为b的值void main () {}
void位置是返回类型 void指的是不需要返回类型xxx(){}
js中定义函数 function xx () {}
void fun(String name , int age) {xxxx}
fun(String name , {int age, String kk}) fun(‘张三‘,age:20)
位置不固定fun(String name , [int age , String kk]) fun(‘张三‘ , 20 )
位置固定fun(String name , {int age = 30, String kk})
() {}
可赋值给 变量 或者直接调用 .. 不能直接定义在最外层((){})()
自调.自执行class 声明类 new创建对象.new可省略 所有对象默认继承于Object类
class 属性默认有getter和setter方法--java需要自定义
class final声明的属性是只读的
class 方法不能重载
//举例
class Person {
String name;
int age;
void work(){
print("name is $name , age is $age")
},
Person (String name , int age){//构造方法
this.name = name;
this.age = age;
};
Person (this.name,this.age);//构造方法简写
Person.ddd (){}; //带名称的构造方法
}
//调用
var person = new Person();//new Person('Tom'.20)--有构造时
person.name = 'Tom';
person.age = 20;
person.work(); //name is Tom , age is 20
使用_
表示私有性. 默认一个Dart文件就是一个库 .. Dart中可见性以Library(库)为单位 java的可见性设置十分多
class的计算属性
class Rect{
num width,height;
num get area => width * height;// area{ return w*h }
set area(val) {//给计算属性area赋值时,处理数据,给其他属性赋值
width = val / 20;
};
}
var re = new Rect();
re.height = 20;
re.width = 10;
print(re.area); //200
构造方法-创建对象时调用的方法 可设置多个构造 .. 详情看上上面的person
使用const声明构造方法,并且所有变量都为final,使用const声明对象.可以省略
?.安全访问成员 person?.work() 对象存在时调用work不存在则不执行
as 类型转换
is is! 是否是指定类型
级联操作 person..name=‘xx‘..age=20..work();
标签:方法 浮点型 类型 直接 字符串操作 extends 初始化列表 pre 匿名
原文地址:https://www.cnblogs.com/Vayne-N/p/11519153.html