Fluter 学习笔记 之 Dart 语言入门

Fluter 学习笔记 之 Dart 语言入门基本类型var可以定义变量,如vartag=”666″,这和JS、Kotlin等语言类似,同时Dart属于动态类型语言,支持闭包。Dart中number类型分为int和double,其中java中的long对应的也是Dart中的int类型。Dart中没有float类型。Dart下只有bool型可以用于if等判断,不…

基本类型

var 可以定义变量,如 var tag = “666” ,这和 JS 、 Kotlin 等语言类似,同时 Dart 属于动态类型语言,支持闭包。

Dart 中 number 类型分为 int 和 double ,其中 java 中的 long 对应的也是 Dart 中的 int 类型。Dart 中没有 float 类型。

Dart 下只有 bool 型可以用于 if 等判断,不同于 JS 这种使用方式是不合法的 var g = “null”; if(g){ } 。

Dart 中,switch 支持 String 类型。

 

内置类型

Number 类型:int(整型),double(浮点型)

String 类型:字符串 打印时如果加上 r” “则里面的内容不会被转义,字符串后面加[]是去除字符串里面该下标的字符

插值表达式:

int a = 1;
int b = 2;
print("a + b = ${ a + b }");

//输出结果为 a + b = 3

print("a = $a");

//输出结果为 a = 1

BOOL 类型:(true, false)

List:(数组,列表),创建方式

//创建 list
var list = [1,2,3];
//创建不可变 list
var list = const[1,2,3];
//构造创建
var list = new List();

Map 类型

//创建 Map
var lan = {"first":"dart","second":"Java"};

//创建不可变 Map
var lan = const {"first":"dart","second":"Java"};

//构造创建
var lan = new Map();

 

变量

Dart 不需要给变量设置 setter getter 方法, 这和 kotlin 等类似。Dart 中所有的基础类型、类等都继承 Object ,默认值是 NULL, 自带 getter 和 setter ,而如果是 final 或者 const 的话,那么它只有一个 getter 方法。

Dart 中 final 和 const 表示常量,且只能被赋值一次,不能二次修改,比如 final name = ‘GSY’; const value= 1000000; 同时 static const 组合代表了静态常量。其中 const 的值在编译期确定,final 的值要到编译时才确定。(ps Flutter 在 Release 下是 AOT 模式。)

Dart 下的数值,在作为字符串使用时,是需要显式指定的。比如:int i = 0; print(“aaaa” + i); 这样并不支持,需要 print(“aaaa” + i.toString()); 这样使用。这和 Java 与 JS 存在差异。所以在使用动态类型时,需要注意不要把 number 类型当做 String 使用。

Dart 中数组等于列表,所以 var list = []; 和 List list = new List() 可以简单看做一样。

 

 

方法

Dart 下 ?? 、??= 属于操作符,如: AA ?? “999” 表示如果 AA 为空,返回999;AA ??= “999” 表示如果 AA 为空,给 AA 设置成 999。

Dart 方法可以设置 参数默认值 和 指定名称 。比如: getDetail(Sting userName, reposName, {branch = “master”}){} 方法,这里 branch 不设置的话,默认是 “master” 。参数类型 可以指定或者不指定。调用效果: getRepositoryDetailDao(“aaa”, “bbbb”, branch: “dev”);

Dart 不像 Java ,没有关键词 public 、private 等修饰符,_下横向直接代表 private ,但是有 @protected 注解。

Dart 中多构造函数,可以通过如下代码实现的。默认构造方法只能有一个,而通过Model.empty() 方法可以创建一个空参数的类,其实方法名称随你喜欢。而变量初始化值时,只需要通过 this.name 在构造方法中指定即可:

class ModelA {
  String name;
  String tag;
  
  //默认构造方法,赋值给name和tag
  ModelA(this.name, this.tag);

  //返回一个空的ModelA
  ModelA.empty();
  
  //返回一个设置了name的ModelA
  ModelA.forName(this.name);
}

基础语法学习参考视频课程:https://www.imooc.com/video/19041,或者文章:https://www.jianshu.com/p/3d927a7bf020

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/234807.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • 摄像头的MIPI接口、DVP接口和CSI接口[通俗易懂]

    摄像头的MIPI接口、DVP接口和CSI接口[通俗易懂]我们常用的电脑摄像头接口是USB接口,而常见的智能手机上的摄像头是MIPI接口,还有一部分的摄像头(比如说某些支持DVP接口的硬件)是DVP接口;通俗的讲,USB是串行通用串行总线(UniversalSerialBus)的简称,而MIPI是移动行业处理器接口(MobileIndustryProcessorInterface),DVP是数字视频端口(digitalvideoport)的简称,CSI是相机串行接口(CMOSSensorInterface)的简称。Camera工作原理介绍一

    2022年6月13日
  • 【奇巧淫技】python 助你每天早上八点自动发送天气预报邮件到QQ邮箱「建议收藏」

    【奇巧淫技】python 助你每天早上八点自动发送天气预报邮件到QQ邮箱「建议收藏」将代码部署服务器,每日早上定时获取到天气数据,并发送到邮箱。也可以说是一个小人工智障。思路可以运用在不同地方,主要介绍的是思路。

    2022年6月28日
  • 三步搞定maven中的mybatis Generator代码生成器

    三步搞定maven中的mybatis Generator代码生成器

    2020年11月12日
  • 百科知识题库_趣味知识竞赛题库及答案

    百科知识题库_趣味知识竞赛题库及答案.西印度群岛位于哪个大洋的西岸?大西洋2.七大洲中面积第二大的是哪个洲?非洲3.“知之为知之,不知为不知,是知也。”是古代的哪位大教育家对学生讲的话?孔子4.“不以规矩,不能成方圆”是出自古代哪位著名儒家思想家之口?孟子5.我国法律规定年满多少周岁就有选举权和被选举权?18岁6.我国民航法规定,乘坐民航班机年满多少周岁的人不能购买儿童票?12岁7.演唱《桃花朵朵开》的马来西

    2022年9月3日
  • 解决JetBrains 账户连接错误,hosts下并没有0.0.0.0 account.jetbrains.com问题

    解决JetBrains 账户连接错误,hosts下并没有0.0.0.0 account.jetbrains.com问题JetBrains帐户连接错误:连接超时:连接您的主机可能在代理的后面。PhpStorm无法检测到您的代理配置。您可能希望指定HTTPS代理参数,然后重试。代理主机:代理端口:onedetermine我的hosts下面并没有0.0.0.0 account.jetbrains.com0.0.0.0www.jetbrains.com这里修改了下我本机的DNS改为 114….

    2022年8月18日
  • radius认证服务器ip该怎么填_radius认证服务器拒绝原因

    radius认证服务器ip该怎么填_radius认证服务器拒绝原因1.AAA和Radius概述  AAA是验证授权和记账Authentication,Authorization,andAccounting的简称。它是运行于NAS上的客户端程序,它提供了一个用来对验证、授权和记账这三种安全功能进行配置的一致的框架。AAA的配置实际上是对网络安全的一种管理,这里的网络安全主要指访问控制,包括哪些用户可以访问网络服务器,具有访问权的用户可以得到哪些服务,如何

    2022年10月24日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号