flutter-dart学习

目录

前言

学习dart

入口函数

变量

常量

dart 命名规则

dart数据类型

字符串类型

 数值类型

布尔类型

list类型 (数组/集合)

Maps类型(字典)

dart 运算符

算术运算符

关系运算符

逻辑运算符

赋值运算符

条件表达式

三目运算符

?? 运算符

dart数据类型转换

dart自增/自减运算符

dart循环语句

for循环

while do while

break 语句功能 / continue 语句功能

break语句功能

continue 语句功能

list (数组)常用的属性和方法

常用属性

常用方法

映射(Maps)常用属性和方法

常用属性

常用方法

循环语句

for循环

forEach

map

where

every

dart 中的方法

方法的定义

方法的参数

默认参数

命名参数

把方法当做参数

dart中的函数

箭头函数

函数之间的调用

匿名方法

方法的递归

闭包

dart中的类 & 对象

在dart中自定义类

在自定义类中通过方法来操作属性

自定义类中的默认构造函数

自定义类中的命名构造函数

把类单独抽离成一个单独文件

dart中的私有方法 & 私有属性

类中的 getter 和 setter 修饰符

类中的初始化列表

类的静态成员 & 非静态成员

对象操作符

类的继承

dart 中的抽象类

抽象类和抽象方法

dart中的多态

dart中的接口

dart 中一个类实现多个接口

dart中的mixins

dart 中的泛型

泛型方法

泛型类

泛型接口

dart 中的库

自定义库

系统库

dart 库的冲突解决

dart 新特性

可空类型

类型断言

late

required

总结


前言

        要学习flutter ,我们需要先学习flutter的基础逻辑语法dart


学习dart

1、在安装flutter SDK时已经自动安装了dart SDK ,不需要再重复安装dart SDK,在VScode中安装插件 dart 、flutter、code runner。

2、在空文件夹下创建一个文件,后缀要为.dart,要执行的代码都要放在main (){ }入口中, 然后右键执行 Run Code 查看执行结果

注意,一句话执行完之后要加分号

入口函数

1、正规写法

main(){
    要执行的代码
}

2、没有返回值的入口函数

//表示main方法没有返回值
void main (){
    要执行的代码
}

变量

dart 是一个强大的脚本类语言,可以不预定定义变量类型,自动会推断类型

dart 中定义变量可以通过 var 关键字可以通过类型来申明变量

1、可以使用 var 来申明变量,也可以直接使用类型关键词来申明变量

注意 var 和类型不要一起写

1.1 使用 varString 字符串来申明变量

 1.2 使用 int 来申明 number数字类型

 

1.3 var 和 关键词申明变量的区别

var 有推断类型,关键词申明后面的值一定要和关键词一致

例如:
    String str = '';
    str = 133456;
    // 这里就表示 str 是字符串
    int arr = '123456';
    // 这里就会报错,因为 int是申明 number类型的,而后面的值却是字符串
    arr = 

常量

final 和 const 修饰符

const 值不变,一开始就得赋值

final 可以开始不赋值,只能赋一次,而 final 不仅有const 的编译时常量的特性,最重要的它是运行时常量,并且final 是惰性初始化,即在运行时第一次使用前才初始化

永远不改量的量,请使用 final 或const 修饰它,而不是使用 var 或者其他变量类型

相同点:final 和 const 都是定义常量的,值不可改变

不同点:使用方法时要使用 final 才有效,使用 const 无效

例如:获取当前系统时间
有效:final a = new DateTime.now();
    print(a);
无效:const a = new DateTime.now();
    print(a);
​

dart 命名规则

1.变量名称必须由数字、字母、下划线和美元符号($)组成。

2.注意:标识符开头不能是数字

3.标识符不能是保留字和关键字。如 if var

4.变量的名字是区分大小写的 如:age 和 Age是不同的变量,在实际的运用中,也建议不要用同一个

5.标识符(变量名称)一定要见名思意,变量名称建议用名词,方法名称建议用动词

dart数据类型

字符串类型

1、定义字符串的几种方式

  1. 使用var 定义

var str1 = 'shis is str1'

2.使用字符串关键词定义

String str1 = 'this is str1'

注意:这里书写单引号和双引号都行,只要是成双出现即可,

3.三个引号的用法

var str1 = '''shis is str1'''
var str1 = """shis is str1"""
String str1 = '''this is str1'''
String str1 = """this is str1"""

三个引号的区别就是,当引号里面的内容有多行时,可以输入空格不换行

2、字符串拼接

2.1、使用 $ 符号拼接

 2.2、 使用 + 号拼接

 2.3 、 + 号中间加双引号,可以输出空格

 数值类型

int 和 double 修饰符

1、int 定义

定义的值必须是整型,也就是必须是整数,不能为小数

 

2、double 定义

定义的值可以是整型(整数),也可以是浮点型(小数),整数输出时会自动添加上小数后一位

 

3、运算符

加(+)减(-)乘(*)除(/)余(%)

举例: 相加:+ 两个变量可以相加得出结果

布尔类型

bool 修饰符

值要么是true ,要么是false

 

条件判断语句

1.true或false判断

 

2.变量比较判断

注意:一个等号是赋值,两个等号才是比较符

 

这里的结果为什么 是a!=b呢?因为在dart 中不会对变量类型进行转换,a是number 数值类型,b是string字符串,所以不相等

list类型 (数组/集合)

和 JavaScript 一样可以通过 数组名.length 获取数组长度,也可以通过 下标来获取数组指定元素

1、第一种定义 list 的方式

 

2.第二种定义 list 的方式 指定类型

在数组前面用尖括号包裹要指定的数据类型,指定数据类型后,数组中只能存放该数据类型元素,存放其他数据类型元素会报错

 

第三种定义 list 的方式 增加数据

通过 [] 创建的数组 ,他的容量可以变化

1.定义一个数组

2.通过数组名.add() 方法给数组添加数据

 

非空数组,只要是 [ ] 创建的数组,都是可以变化的

4、第四种定义 list 的方式 指定长度

// var l6 = List.filled(length, fill): 创建一个固定长度的集合,要传入两个参数,第一个是长度,第二个参数是元素

1、创建一个长度为2 ,两个元素都为空的数组

 

2、通过数组的下标,给数组指定元素赋值

数组名[下标] = 值

 

注意:使用 list.filled 创建的数组,不能使用 数组名.add()方法添加数据,也不能通过 数组名.length 来改变长度

5.第五种定义 list 的方式 ,使用 list.filled 创建的数组 指定长度并且指定类型

// var l6 = List<类型>.filled(length, fill): 创建一个固定长度的集合,要传入两个参数,第一个是长度,第二个参数是元素,当前面指定类型了,后面元素的类型也要对应,没有对应的话会报错

 

Maps类型(字典)

第一种定义 maps 的方式

注意:这里 和 Javascript 不同的是 获取指定 key 值不能通过点方法,要用 对象名['指定key']

 

第二种定义 maps 的方式

new Map()

 

判断数据类型

is 关键词来判断数据类型

 

dart 运算符

基本上和 Javascript 一致

算术运算符

+(加) -(减)  *(乘)  /(除)   ~/(取整)  %(取余)

 

关系运算符

== (相等)     !=(不等)     >(大于)    <(小于)   >=(大于等于)    <=(小于等于)

 

逻辑运算符

!(取反)    &&(并且)     ||(或)

!(取反)

 

&& (并且)

 

|| (或者)

赋值运算符

基础赋值运算符

=    ??=

1、= 直接赋值

 

2、??= 先判断变量是否有值,如果有值结果就是原来的值,如果没有值,就是重新赋值

 

复合赋值运算符

+=       -=      *=       /=        %=       ~/=

1、+=

 

2、-=

 

3、*=

 

条件表达式

1、if else / 与JavaScript中用法一致 /

if(条件判断){
	//执行代码
} else if(条件判断){
	//执行代码
}  else{
	//执行代码
}

2、switch case / 与JavaScript用法一致 /

void main() {
  var xingBie = '男';

  switch (xingBie) { // 括号中传入要判断的变量
    case '男':   // 判断条件
      print('性别是男'); // 条件满足时执行代码,可以是多句
      break;    // 一定要加break结束
    case '女':   
      print('性别是女');
      print('性别是女');
      break;
    default:    // 其他条件都不满足时执行
      print('参数传入错误');
      break;
  }
}

区分: Switch case 能判断的用if else 都能判断 ,但是Switch case 更常用来判断固定值

 

三目运算符

/与JavaScript中的三元表达式用法一致/

条件表达式 ?值1 :值2;
	结果为:当条件表达式的结果为true时,结果就为值1 ,否则就为值2

 

?? 运算符

var a;
var b = a ?? 10;
print(b); // 10
	判断 a  是否有值,如果a 有值就将 a 的值赋值给b ;如果 a没有值、就将10 赋值给 b。

dart数据类型转换

1、number 与 String 数据类型之间的转换

number 类型转换成 string 类型

用 toString()方法

string 类型转换成 number 类型

1、整型 用 int.parse()方法

 

1、浮点型 用 double.parse()方法

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值