Dart语言--基础内容
Posted vayne-n
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dart语言--基础内容相关的知识,希望对你有一定的参考价值。
基础
主函数
void main ( )
声明变量
var a num a int a double a bool a = true
- final b = 0; 声明只能赋值一次的变量
- const a = 1; 常量
- var a = const [1,2]; 声明一个不可变的list
数据类型
数据类型
- Number
- Int --整数型
- double -- 浮点型
- String
- Boolean
- List -- 数组
- Map -- 键值对
- Number
特殊运算符 ~/ 向下取整
- 字符串操作
‘‘‘ 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‘;
- 创建不可变Map
var q = const ,,,,
- 构造创建 var
q = new Map()
- 获取value
qq[‘frist‘]
- 循环传递两个值
qq.forEach ( f ); void f( key , value ).......
- 创建
- dynamic 类型 -- 动态类型
var a = 10; a = "xxx";
dynamic a = 20; a="xxx";
- 泛型应用:
var lis = new List\<dynamic\>();
这样声明的lis 可以使用各种类型的数据
运算符
- ??=
b ??= 10;
b是空的则是10,有值则不做改变. a~/=b
类似于 a+=b
var c = a ?? b
a为空时表达式为b的值
函数
void main ()
void位置是返回类型 void指的是不需要返回类型- Dart定义函数
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-类
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声明对象.可以省略
- 工厂构造方法
- 类似于设计模式中的工厂模式 - -构造方法前加factory
- 最大的不同 , 工厂构造可以返回对象. ---???
- 初始化列表 ---???
- static 声明静态成员 --???
- 对象操作符
?.安全访问成员 person?.work() 对象存在时调用work不存在则不执行
as 类型转换
is is! 是否是指定类型
级联操作 person..name=‘xx‘..age=20..work();
- 对象call方法
- 如果class实现了call(),则该class的对象可以作为方法使用
继承
- extends --继承父类可见的属性和方法. 子类可以复写父类方法/getter/setter
- 单继承/多态性
- @override -- 指的是该方法是复写的
- 子类构造方法会默认调用父类的无名无参的构造方法. 如果父类没有,则需要显示调用
- 构造方法执行顺序: 子类初始化列表 - 父类构造 - 子类构造
抽象类
- 抽象类 abstract ,不能实例化.只能被继承实例化
接口
- 类和接口是统一的
以上是关于Dart语言--基础内容的主要内容,如果未能解决你的问题,请参考以下文章