dart 学习笔记
1.dart 下载安装,vscode 安装dart ,coderunner等
2.dart语法
1)需要入口函数main,或者void(没有返回值) main
2)定义变量
var str=‘kkk’
String str=‘kkkk’
永远不改变的常量用const 或者final修饰
const String str=‘kkkk’
3)数据类型
int
double
string
bool
map
list
4)运算符类型转换
字符串转num
int.parse(String)
判断数据类型用is
num is int?
判断空用isEmpty
5)list ,map,set方法属性
List
常用属性:
List myList = ['data1','data2','data3'];
print(myList.isEmpty); //是否为空
print(myList.isNotEmpty); //是否不为空
myList.reversed; //反转数组
常用方法:
myList.add('data4');//增加数据;
myList.addAll(List);//通常用来合并数组;
myList.indexOf('xxx');//用来查找数据,找不到返回-1;找到返回对应的下标;
myList.remove('data1');//删除指定的值;
myList.removeAt(index);//删除对应下标的值
myList.fillRange(0,1);//修改数据, 输入起始位置;
myList.insert(0,'data0');//向数组中插入数据
myList.insertAll(0,List);//插入数组
myList.join(',');// 把数组转换为字符串,以逗号形式分割
字符串转数组:
var str = 'data-data1-data2';
str.split('-');
Map
print(map.length); // 2
print(map.keys); // (name, age)
print(map.keys.toList()); // [name, age]
print(map.values.toList()); // [张三, 18]
print(map.isEmpty); // false 不为空
print(map.isNotEmpty); // true 不为空
remove(key) 删除指定key的数据
addAll({...}) 合并映射, 给映射增加属性
containsValue(value) 判断映射里是否有某个值, 返回true/ false
6)函数
7)类
1 定义这个类的属性和方法
//定义一个类的属性和方法
class Person {
String name = '张三';
int age = 19;
void getInfo() {
// print('我叫\(name,今年\)age');第一种
//推荐使用这样的写,通过this去访问
print("\({this.name}====\){this.age}");
}
}
//使用类中的属性和方法
void main() {
// 调用Perso这个类 首先需要实例化这个类
// Person p = new Person(); // 等价 var p=new Person
var p = new Person();
print(p.age);
p.getInfo();
}
2 改变类中的属性和方法
class Person {
String name = '张三';
int age = 19;
void getInfo() {
//推荐使用这样的写法
print("\({this.name}====\){this.age}");
}
//限制类型,更改类中的属性和方法
SetUserinfo(int age) {
this.age = age;
}
}
void main() {
// 调用Perso这个类 首先需要实例化这个类
Person p = new Person(); // 等价 var p=new Person
print(p.age);//19
p.getInfo();//张三19
p.SetUserinfo(100);
p.getInfo();//张三100
}
8)静态成员
Dart中的静态成员:
1、使用static 关键字来实现类级别的变量和函数
2、静态方法不能访问非静态成员,非静态方法可以访问静态成员
`class Person {
static String name = '张三';
int age=20;
static void show() {
print(name);
}
void printInfo(){ /非静态方法可以访问静态成员以及非静态成员/
// print(name); //访问静态属性
// print(this.age); //访问非静态属性
show(); //调用静态方法
}
static void printUserInfo(){//静态方法
print(name); //静态属性
show(); //静态方法
//print(this.age); //静态方法没法访问非静态的属性
// this.printInfo(); //静态方法没法访问非静态的方法
// printInfo();
}
}
//没有带static的时候,是先实例之后再调用。使用了static之后,直接用Person调用
// print(Person.name);
// Person.show();
// Person p=new Person();
// p.printInfo();
Person.printUserInfo();`
9)类的继承
Dart中的类的继承:
1、子类使用extends关键词来继承父类
2、子类会继承父类里面可见的属性和方法 但是不会继承构造函数
3、子类能复写父类的方法 getter和setter
`class Person {
String name;
num age;
Person(this.name,this.age);
void printInfo() {
print("\({this.name}---\){this.age}");
}
}
class Web extends Person{
Web(String name, num age) : super(name, age){//super表示把实例化子类的时候,传入的name age赋值给Person构造函数
}
}
//在main函数中调用
Web w=new Web('张三', 12);
w.printInfo();`
dart 学习笔记的更多相关文章
- Dart学习笔记-运算符-条件表达式-类型转换
Dart学习笔记-运算符-条件表达式-类型转换 一.运算符 1.算术运算符 + (加)- (减)* (乘)/ (除)~/ (取整) %(取余) 2.关系运算符 == (等等) != (不等) > ...
- Dart学习笔记
一.数据类型 1. 字符串 和 数字 互转 // String 转为 int '); assert(one == ); // String 转为 double var onePointOne = do ...
- Dart学习笔记-循环
1.for循环 main() { // for循环 ; i < ; i++) { print(i); // 0,1,2,3,4,5,6,7,8,9 } } 2.while循环 main() { ...
- Dart学习笔记-变量常量数据类型
变量和常量 1.变量的定义 main() { var t_str = 'hello world'; var t_num = 123456; String t_str2 = '你好,我很高兴'; int ...
- Flutter学习笔记(3)--Dart变量与基本数据类型
一.变量 在Dart里面,变量的声明使用var.Object或Dynamic关键字,如下所示: var name = ‘张三’: 在Dart语言里一切皆为对象,所以如果没有将变量初始化,那么它的默认值 ...
- Flutter学习笔记(4)--Dart函数
如需转载,请注明出处:Flutter学习笔记(4)--Dart函数 Dart是一个面向对象的语言,所以函数也是对象,函数属于Function对象,函数可以像参数一样传递给其他函数,这样便于做回调处理: ...
- Flutter学习笔记(5)--Dart运算符
如需转载,请注明出处:Flutter学习笔记(5)--Dart运算符 先给出一个Dart运算符表,接下来在逐个解释和使用.如下: 描述 ...
- Flutter学习笔记(6)--Dart异常处理
如需转载,请注明出处:Flutter学习笔记(6)--Dart异常处理 异常是表示发生了意外的错误,如果没有捕获异常,引发异常的隔离程序将被挂起,并且程序将被终止: Dart代码可以抛出并捕获异常,但 ...
- Flutter学习笔记(8)--Dart面向对象
如需转载,请注明出处:Flutter学习笔记(7)--Dart异常处理 Dart作为高级语言,支持面向对象的很多特性,并且支持基于mixin的继承方式,基于mixin的继承方式是指:一个类可以继承自多 ...
- Flutter学习笔记(6)--Dart流程控制语句
如需转载,请注明出处:Flutter学习笔记(5)--Dart流程控制语句 条件语句:if.if...elseif.if...elseif...else ; ) { print('优秀'); } &g ...
随机推荐
- DVWA靶场实战(十)——XSS(DOM)
DVWA靶场实战(十) 五.XSS(DOM): 1.漏洞原理: XSS全称为Cross Site Scripting,由于和层叠样式表(Cascading Style Sheets,CSS)重名,所以 ...
- 记一次CVE实战挖掘记录
CVE实战挖掘记录 前一段时间在学习代码审计,然后为了学习就开始在github上面找开源的项目进行练手学习代码审计,这样就可以获取CVE编号. 0x01 cve编号获取流程 首先登录CVE官方网站,选 ...
- Java 进阶P-7.2+P-7.3
控制反转 很长一段时间里,我对控制反转和依赖注入这两个概念很模糊,闭上眼睛想一想,总有一种眩晕的感觉.但为了成为一名优秀的 Java 工程师,我花了一周的时间,彻底把它们搞清楚了. 紧耦合 在我们编码 ...
- Linux备份服务
备份服务 一.备份服务概述 备份服务:需要使用脚本,打包备份,定时任务 通过rsyncd服务,不同主机之间进行数据传输 rsyncd特点: rsync是个服务,也是命令 使用方便,有多种模式 传输数据 ...
- C#DataTable(转List /JSON/字典 互转)
1 #region 数据表DataTable 转键值对集合 List 2 /// <summary> 3 /// 数据表DataTable 转键值对集合 List 4 /// 把DataT ...
- 力扣---167. 两数之和 II - 输入有序数组
给你一个下标从 1 开始的整数数组 numbers ,该数组已按 非递减顺序排列 ,请你从数组中找出满足相加之和等于目标数 target 的两个数.如果设这两个数分别是 numbers[index1 ...
- JAVA虚拟机-01-JAVA虚拟机家族简介
JAVA虚拟机家族简介 Classic VM JDK1.0发布,第一款商议的JAVA虚拟机.纯解释器方式来执行java代码的的JAVA虚拟机.如果要使用即时编译就需要外挂编译器.如果外挂了编译器,及时 ...
- JAVA虚拟机12--Class文件结构-属性表
1 属性表 1.1 简介 属性表(attribute_info)在前面的讲解之中已经出现过数次,Class文件.字段表.方法表都可以携带自己的属性表集合,以描述某些场景专有的信息. <Java虚 ...
- P15_了解小程序的版本阶段与上线的主要步骤
协同工作和发布 - 小程序的版本 软件开发过程中的不同版本 在软件开发过程中,根据时间节点的不同,会产出不同的软件版本,例如: 开发者编写代码的同时,对项目代码进行自测(开发版本) 直到程序达到一个稳 ...
- 学习java Day1
今天正式开始自学Java,首先在官网安装了最新版的jdk并配置好了环境,随后安装好了eclipse. 使用eclipse运行了一个基础的aa.java文件,并成功打印出hello world 首先我了 ...