【第三章 flutter学习之Dart基础(上)】

这篇具有很好参考价值的文章主要介绍了【第三章 flutter学习之Dart基础(上)】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、入口方法的定义方式

main(){
	print('hello world')
}
//下边这种方法中void表示没有返回值
void main(){
	print('你好dart')
}

二、Dart变量和常量

var str = 'hello'   
Srting srt = 'hello'
int srt = 123
//两种命名变量的方式

const a = 123
final a = 123 
//他们两个是用来声明常量的
区别是
final 可以接受一个可变的数值 例如 New Date()const 就不可

三、Dart常用数据类型

1. 字符串类型
	var || String 声明   
	拼接字符串与js相比多了一种拼接方式
例如:
	String str = "hello"
	var str2 = "world"
	print("$str $str2"){
	
	}
	//就会打印str + str2 一样的 "hello world"
	
2. 数值类型
 int整数值 //只有整数
 double浮点值  double包含整数和小数
 
3. 运算符
+ - * / %

4.布尔值
true false 

4. 条件判断
 if语句 和js一样
 
5. 数组/集合类型
 第一种声明和js一样
  var list=['aaa','a',0,1]
  
 第二种声明可指定类型
 var list = <String>["这里边必须是指定类型数据"]
 
 数组添加的方式 js是通过push...
 它可以通过add添加
 var list = []
 list.add(1)
 
 第三种声明方式 固定长度
 var list = List.filled(2,"") 创建一个长度固定为2的数组集合 默认值""
  可指定类型 不可以增加 可修改数据 修改方式 => list[0]=1
  
6. maps类型 类型对象

第一种方式
var data={
	"name":"xxx",
	"age":20
}
 
第二种
var data = new Map()
data["name"] = "XXX"
data["age"] = 12


类型判断 is
var str = ""
str is String 返回布尔值

四、Dart运算符与类型转换及循环语句

1. 算数运算符
  +、 - 、* 、/ 、 ~/取整 、 %
  ~/取整  a~/b 意思就是a/b的值取整
2. 关系运算符
  == ~= > < >= <=
3. 逻辑运算符
  ! && ||
4. 赋值运算符
  =  ??=
  ??=  a??=12意思就是a的值空吗是的话就把12赋值给a
  += -= *= /= %= ~/=
  ++  --  (++,--在前先运算再赋值,在后先赋值再运算)
5. 条件表达式
   if else  switch case
   三目运算符(三元表达式)
类型转换
	1. 转化为String类型 toString()
	2. 转化为Number类型 double.parse() || int.parse()
try  ... catch  抛出异常
	try{
	XXXX	
	}catch(err){
	//如果XXXX部分代码报错则执行此作用域内代码
	}
isEmpty:判断字符串是否为空
isNotEmpty:判断是否不为空
str.isEmpty
for循环 和js一样
for(int i = 1; i<100; i++){
	parint(i)
}
do while
单个while和if类似,不过只要条件仍满足则扔执行
	do {
			先执行一次再判断
			while中的条件满足,满足则继续执行
			continue;//表示跳过本次循环
			break;//跳出循环
		}while(条件)
数组常用方法
length属性 长度
reversed属性 翻转并转换数组(3,2,1)这样的括号
toList方法 转换(3,2,1)为数组[3,2,1]
add()  添加单个数据
addAll() 添加多个数据,也可用来拼接
indexOf() 查找并返回索引否则返回-1
remove() 传递具体的值删除
removeAt() 传入索引删除
fillRange() 修改,接受三个参数,(起始位置,结束为止,修改的值)
insert()也是接收三个参数,起始,结束,值;用来插入值
insertAll() 插入多个值 两个参数(插入下标位置,插入的值(可以是数组))
join(',') 转换为字符串
split(',') 转化为数组

for in 循环对象
forEach循环
	可以没有箭头
XX.forEach((val){
		print("$value")  
})
map函数
where函数
any函数 只要又满足条件的就返回true
every 每一项都要满足否则就返回false


五、自定义方法

void 自定义名称(){
	print("自定义方法")
}

void main() {
	自定义名称()//调用
	
	int 方法2(){
	//也可以在这里定义方法 
	return 666
 	}
 	var a=方法2()
 	print(a)
}

自执行方法
((a){
	print(a)
})(参数);

class类
定义类
【第三章 flutter学习之Dart基础(上)】,flutter,学习
使用类
【第三章 flutter学习之Dart基础(上)】,flutter,学习
默认就执行构造函数
【第三章 flutter学习之Dart基础(上)】,flutter,学习
简写方式
【第三章 flutter学习之Dart基础(上)】,flutter,学习
类单独抽离成一个组件或方法

  1. 创建一个dart文件,定义好类,
  2. import “路径” 引入 即可使用

私有属性
必须是一个单独的文件
属性或方法前面加_下划线即可为私有属性或者私有方法
不过仍可以间接获取,通过调用共有方法仍可获取到

getter setter修饰符
【第三章 flutter学习之Dart基础(上)】,flutter,学习
【第三章 flutter学习之Dart基础(上)】,flutter,学习
初始化列表

【第三章 flutter学习之Dart基础(上)】,flutter,学习

六、Dart静态成员、操作符、类的继承

Dart静态成员
【第三章 flutter学习之Dart基础(上)】,flutter,学习

【第三章 flutter学习之Dart基础(上)】,flutter,学习
操作符

Dart中的对象操作符
?条件运算符
as 类型转换
is 类型判断
.. 级联操作

【第三章 flutter学习之Dart基础(上)】,flutter,学习
连缀操作
【第三章 flutter学习之Dart基础(上)】,flutter,学习

类的继承
【第三章 flutter学习之Dart基础(上)】,flutter,学习
如果继承类调用方法自己有的话则调用自己的,没有才会去父类找

【第三章 flutter学习之Dart基础(上)】,flutter,学习

【第三章 flutter学习之Dart基础(上)】,flutter,学习

多态
【第三章 flutter学习之Dart基础(上)】,flutter,学习

七、接口

/*
和Java一样,dart也有接口,但是和Java还是有区别的。

  首先,dart的接口没有interface关键字定义接口,而是普通类或抽象类都可以作为接口被实现。

  同样使用implements关键字进行实现。

  但是dart的接口有点奇怪,如果实现的类是普通类,会将普通类和抽象中的属性的方法全部需要覆写一遍。
  
  而因为抽象类可以定义抽象方法,普通类不可以,所以一般如果要实现像Java接口那样的方式,一般会使用抽象类。

  建议使用抽象类定义接口。

*/

/*
定义一个DB库 支持 mysql  mssql  mongodb

mysql  mssql  mongodb三个类里面都有同样的方法

*/


abstract class Db{   //当做接口   接口:就是约定 、规范
    late String uri;      //数据库的链接地址
    add(String data);
    save();
    delete();
}

class Mysql implements Db{
  
  @override
  String uri;

  Mysql(this.uri);

  @override
  add(data) {
    // TODO: implement add
    print('这是mysql的add方法'+data);
  }

  @override
  delete() {
    // TODO: implement delete
    return null;
  }

  @override
  save() {
    // TODO: implement save
    return null;
  }
  remove(){
      
  }

  
}

class MsSql implements Db{
  @override
  late String uri;
  @override
  add(String data) {
    print('这是mssql的add方法'+data);
  }

  @override
  delete() {
    // TODO: implement delete
    return null;
  }

  @override
  save() {
    // TODO: implement save
    return null;
  }


}

main() {

  Mysql mysql=new Mysql('xxxxxx');

  mysql.add('1243214');

  


  
}

八、接口分离写法

【第三章 flutter学习之Dart基础(上)】,flutter,学习
【第三章 flutter学习之Dart基础(上)】,flutter,学习

九、一个类实现多个接口

【第三章 flutter学习之Dart基础(上)】,flutter,学习
之后再入口调用类
【第三章 flutter学习之Dart基础(上)】,flutter,学习


未完待续文章来源地址https://www.toymoban.com/news/detail-533571.html

到了这里,关于【第三章 flutter学习之Dart基础(上)】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 第三章-OpenCV基础-4-掩模

    掩模,又称为掩膜,掩码,模板。图像掩模是指,用特定的图像/图形/物体遮挡代处理的图像(全部或局部),从而控制图像处理的区域,在数字图像处理中,掩模就是一个指定的数组,毕竟,图像也是数组。 左边图为原图,中间图为掩模(白色区域为透明区域,黑色区域为黑色遮挡区域),经过控

    2024年02月15日
    浏览(58)
  • 信息论基础第三章阅读笔记

    在信息论中,与大数定律类似的是渐进均分性(AEP),它是弱大数定律的直接结果。 大数定理针对独立同分布(i.i.d.)随机变量 ……………… 因此,当n很大时,一个观察序列出现的概率 p ( X 1 , X 2 , . . . , X n ) p(X_1,X_2,...,X_n) p ( X 1 ​ , X 2 ​ , ... , X n ​ ) 近似等于 2 − n H 2^{-nH}

    2024年02月07日
    浏览(52)
  • 【系统架构】第三章-信息系统基础知识

    软考-系统架构设计师知识点提炼-系统架构设计师教程(第2版) 信息系统的5个基本功能:输入、存储、处理、输出和控制 信息系统的发展: 诺兰模型:初始阶段、传播阶段、控制阶段、集成阶段、数据管理阶段、成熟阶段 信息系统的分类: 传统的信息系统分为:业务(数

    2024年02月11日
    浏览(50)
  • 第三章 OpenGL ES 基础-基础-GLSL渲染纹理

    第一章 OpenGL ES 基础-屏幕、纹理、顶点坐标 第二章 OpenGL ES 基础-GLSL语法简单总结 第三章 OpenGL ES 基础-GLSL渲染纹理 第四章 OpenGL ES 基础-位移、缩放、旋转原理 第五章 OpenGL ES 基础-透视投影矩阵与正交投影矩阵 第六章 OpenGL ES 基础-FBO、VBO理解与运用 第七章 OpenGL ES 基础-输入

    2024年03月18日
    浏览(46)
  • C++算法之旅、06 基础篇 | 第三章 图论

    常用代码模板3——搜索与图论 - AcWing 尽可能往深处搜,遇到叶子节点(无路可走)回溯, 恢复现场继续走 数据结构:stack 空间:需要记住路径上的点, (O(h)) 。 ⭐ BFS使用空间少; 无最短路 性质 每个DFS一定对应一个 搜索树 ;要考虑用什么 顺序 遍历所有方案;DFS就是递

    2024年02月10日
    浏览(43)
  • Python基础练习题--第三章 控制结构

    目录 1025:【例3.1】购买笔记本 1026:【例3.2】判断奇偶 1027:【例3.3】区间测速 1028:【例3.4】飞船速度 1029:练3.1最大优惠价 1030:练3.2判断闰年 1031:练3.3最适宜运动心率2 1032:【例3.5】计程票 1033:【例3.6】BMI健康信息 1034:练3.4  区间测速2 1035:练3.5  购买笔记本2 【题

    2024年02月07日
    浏览(52)
  • 第三章 内存管理 一、内存的基础知识

    目录 一、什么是内存 二、有何作用  三、常用数量单位 四、指令的工作原理 五、装入方式 1、绝对装入 2、可重定位装入(静态重定位) 3、动态运行时装入(动态重定位) 六、从写程序到程序运行 七、链接的三种方式 1、静态链接 2、装入时动态链接 3、运行时动态链接

    2024年02月07日
    浏览(47)
  • 最优化学习笔记——第三章

    非线性规划比线性规划更困难,没有统一的数学模型,有自己特定的适用范围,目前还没有通用于所有问题的非线性规划问题的算法 满足以上条件的解释可行解,所有解为可行域,如果可行域=R n ,则为无约束问题,否则为有约束问题 如果所有的约束与目标函数都是凸函数,

    2024年02月03日
    浏览(77)
  • JAVA学习笔记——第三章 变量

    🔥 博客主页 : A_SHOWY 🎥 系列专栏 :力扣刷题总结录 数据结构  云计算  数字图像处理  力扣每日一题_  变量是程序的基本组成单位,是内存中的一个数据存储空间。变量有三个基本要素:类型+名称+值。变量的使用,声明后赋值后即可使用 变量使用注意事项:同c+

    2024年01月18日
    浏览(70)
  • 计算机网络基础 第三章练习题

    现在大量的计算机是通过诸如以太网这样的局域网连入广域网的,而局域网与广城网的互联是通过( A)实现的。 A. 路由器B. 资源子网C. 桥接器D. 中继器 下列不属于数据链路层功能的是(B )。 A. 帧定界功能B. 电路管理功能C. 差错控制功能D. 流量控制功能 数据链路层是OSI模型中的

    2023年04月25日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包