前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Fluter 学习笔记 之 Dart 语言入门

Fluter 学习笔记 之 Dart 语言入门

作者头像
全栈程序员站长
发布2022-11-15 14:00:43
6470
发布2022-11-15 14:00:43
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

基本类型

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” “则里面的内容不会被转义,字符串后面加[]是去除字符串里面该下标的字符

插值表达式:

代码语言:javascript
复制
int a = 1;
int b = 2;
print("a + b = ${ a + b }");

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

print("a = $a");

//输出结果为 a = 1

Jetbrains全家桶1年46,售后保障稳定

BOOL 类型:(true, false)

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

代码语言:javascript
复制
//创建 list
var list = [1,2,3];
//创建不可变 list
var list = const[1,2,3];
//构造创建
var list = new List();

Map 类型

代码语言:javascript
复制
//创建 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 在构造方法中指定即可:

代码语言:javascript
复制
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.cn/234807.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年11月1日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 基本类型
  • 内置类型
  • 变量
  • 方法
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档