当前位置: 首页 > news >正文

Flutter---Dart基础

1.1变量与常量

·变量可以使用var,object,dynamic关键字来声明

·未初始化的变量默认是null

·声明常量使用final和const关键字,final关键字修饰的变量的值只能被设置一次,const关键字修饰的变量在编译时就已经固定

1.2内置数据类型

·常见的基本数据类型有8种:Number,String,Bool,List,Se,Map,Rune和Symbol

·Number类型分为整型和浮点型两种,使用int和double进行声明

·Number类型除了可以进行基本的加减乘除和位移操作,还提供了将字符串和数字相互转换的方法(

①int.parse():String类型转换int类型;

②double.parse():String类型转换为double类型;

③.toString:int类型转换为String类型;

思.toStringAsFixed():Double类型转换为String类型

·String类型通过单引号或者双引号进行声明

·Bool类型只有true和false两个值

·List表示列表,和数组是同一个概念,第一个元素的索引是0,最后一个元素的索引是list.length-1。

·Set用来表示集合,它的对象不需要按照特定的规则排序,对集合的访问和操作都是通过对象来实现的,因此集合不能有重复的对象,要创建一个空集合,可以使用带有类型参数的{},(eg:var name = <String>{}),Dart的集合还提供了add(),addAll()等常用的方法。

·Map以键值对(key-value)的形式进行存储。key和value可以是任何类型的对象,一个Map中,key只能出现一次,但是value可以出现多次

·Rune类型用来表示UTF-32字符串,并且可以将文字转换成符号表情或代表特殊含义的文字。

·Symbol很少用到

1.3函数

·Dart是一门面向对象的编程语言,所以函数也是对象,而函数属于Function类型,所以Dart可以把函数当成变量传给另外一个函数,也可以把Dart类的实例当作方法来调用。

想要理解这句话,可以参考以下

Flutter---函数-CSDN博客

·main()是应用的入口函数

·函数的参数类型有两种,可选参数和必传参数(用@required修饰)。必传参数会显示在参数列表的前面,后面再跟上可选参数。可选参数分为可选命名参数和可选位置参数,可选命名参数的参数部分使用{}包裹,可选位置参数部分使用[]包裹。可选命名参数通过参数名来传递值,与顺序无关。这种在参数较多或者你想明确每个参数含义时特别有用。可选位置参数严格按照位置顺序进行传递,适合那些自然顺序或逻辑关联的参数

可选命名参数的例子

// 定义函数,使用 {} 声明可选命名参数void configureApp({String? theme, int fontSize = 14, bool darkMode = false}) {print('主题: $theme, 字号: $fontSize, 深色模式: $darkMode');}// 调用示例void main() {configureApp(theme: "蓝色", fontSize: 16); // 只传部分参数configureApp(darkMode: true, theme: "暗黑"); // 顺序可交换configureApp(); // 所有参数都使用默认值}

可选位置参数的例子

// 定义函数,使用 [] 声明可选位置参数String introduce(String name, [String? role, int years = 0]) {var intro = '我是 $name';if (role != null) {intro += ', 是一名 $role';}if (years > 0) {intro += ', 有 $years 年经验';}return intro;}// 调用示例void main() {print(introduce("小明")); // 我是小明print(introduce("小红", "工程师")); // 我是小红, 是一名工程师print(introduce("小刚", "设计师", 5)); // 我是小刚, 是一名设计师, 有 5 年经验}

·几乎所有函数都会有一个返回值,如果没有明确指定返回值,那么函数会隐式地添加一个“return null;”语句。

1.4运算符

·算术运算符:+加法,-减法,*乘法,/除法,~/除法取整,expr取负,%取余

·自增和自减:++var先执行自增操作,var++先使用值再执行自增操作(谁在前,就先用谁),--var先执行自减操作,var--先使用值再执行自减操作。

·关系运算符:==,!=,> , < ,>= , <= ,

·类型判定运算符:as:判断是否属于某种类型,还可以将对象强制转换为特定类型。

is:指对象具有指定的类型,返回true。is!:指对象具有指定的类型,返回false

(当不确定类型时,用is或is!来问一问。当非常确定类型时,用as来命令它转换)

·位运算符:&按位与,&~按位取反,|按位或,^按位异或,<<按位左移,>>按位右移

·逻辑运算符:&&与,||或,!非

·条件表达式:

三目表达式(判定条件是Bool值):condition ? expr1 : expr2

??表达式(判定条件是否为null):expr1 ?? expr2

·级联运算符(..)允许你在同一个对象上连续调用多个方法或访问多个属性,而无需重复引用该对象(两个点的级联运算符算不上是一个运算符,它只是一种特殊语法,用于简化表达式)

例子

class Person {String name = '';int age = 0;String city = '';void introduce() {print('我叫$name,$age岁,来自$city');}}void main() {// 不使用级联运算符var person1 = Person();person1.name = '张三';person1.age = 25;person1.city = '北京';person1.introduce();// 使用级联运算符var person2 = Person()..name = '李四'..age = 30..city = '上海'..introduce();}

·Mixin:Java中类的继承都是很简单的单继承,也就是说一个子类只有一个父类。而Dart的Mixin相当于多继承,也就是说一个子类可以继承多个父类。Dart使用with关键自来实现Mixin的功能

http://www.dtcms.com/a/602734.html

相关文章:

  • 网站权重怎么看用jsp做校园网站
  • 网页制作与网站建设初学者必看教程杭州网站开发凡客
  • 如何解决解决,微信小程序ios无法长按复制问题<text>设置 selectable=“true“不起作用
  • Linux驱动知识点:容器嵌入机制(Container Embedding)
  • 深圳网站的建设维护公司现代农业建设 乡网站
  • Flutter---异步编程
  • 为什么浙江建设厅网站漯河市建设监理协会网站
  • 中国建设银行海南省分行网站教学活动设计方案模板
  • Nginx 零停机平滑升级完整指南
  • 洞头区网站建设收费本地同城服务平台
  • 易语言网站做软件下载上海园区虚拟地址一览表
  • wordpress多站点好吗网页设计居中代码
  • 继荣获GitCode G-Star认证后,数式Oinone入选2025年GitCode百大开源项目
  • 青少年CTF Crypto-factor1
  • 做平面哪个网站的素材最好wordpress一键 centos
  • 商城网站 搭建做小程序的平台
  • 金融网站建设案例仿淘宝网站制作
  • 马和人做人和牛做网站菏泽科技网站建设
  • 三只松鼠网站建设龙华做手机网站
  • fopen函数处理中文路径和内容乱码问题
  • 友点企业网站文化馆 网站 设计
  • 大文件上传全方案:Vue + Node.js 实战
  • SCI精读:基于计算机视觉改进光伏热点和积尘检测:基于现场航拍图像的YOLO模型系统比较
  • 专门做创意桌椅的网站谷歌play商店
  • 怎么查看网站是否做静态化处理0基础如何做网站
  • 基于MATLAB绘制CALIPSO Level 2产品中体积退偏比垂直廓线和频率分布直方图
  • 青岛网站推广哪家效果好搜索引擎营销案例分析
  • 网站网站如何做的充值下载网站开发
  • 做网站公司广州ip地址免费
  • MATLAB中海洋要素计算工具箱解析