Dart Memo for Android Developers
Dart Memo for Android Developers
Dart语言一些语法特点和编程规范.
本文适合: 日常使用Kotlin, 突然想写个Flutter程序的Android程序员.
Dart语言
完整的请看A tour of the Dart language
- 创建对象可以不用
new
. -> 并且规范不让用new
, lint会报错. - 声明变量可以用
var
, 也可以用具体类型如String
. 不变量用final
, 常量用const
. - 没有访问修饰符, 用
_
来表示私有: 文件级别. - 字符串可以用单引号
'
. - 语句结尾要用
;
. - 创建数组可以用:
var list = [1, 2, 3];
. assert()
常用来断定开发时不可能会出现的情况.- 空测试操作符:
??
. - 过滤操作符:
where
. - 两个点
..
表示链式调用. dynamic
说明类型未指定.- 除了throw异常, 还可以throw别的东西, 比如字符串.
函数
- 函数返回值在函数最开头, 可以不标. -> 但是规范会建议标注返回值.
bool isNoble(int atomicNumber) {
return _nobleGases[atomicNumber] != null;
}
=>
箭头符号, 用来简化一句话的方法.
bool isNoble(int atomicNumber) => _nobleGases[atomicNumber] != null;
构造函数
- 构造函数
{}
表示带名字, 参数可选, 若要必选加上@required
.
const Scrollbar({Key key, @required Widget child})
- 构造函数名可以是
ClassName
或者ClassName.identifier
. - 空构造函数体可以省略, 用
;
结尾就行:
class Point {
double x, y;
Point(this.x, this.y);
}
这里会初始化相应的变量, 也不用声明具体的参数类型.
- 有
factory
构造, 可以用来返回缓存实例, 或者返回类型的子类:
factory Logger(String name) {
return _cache.putIfAbsent(name, () => Logger._internal(name));
}
异步代码
Future<String> lookUpVersion() async => '1.0.0';
Future checkVersion() async {
var version = await lookUpVersion();
// Do something with version
}
编程规范类
完整的规范在这里: Effective Dart.
有一些Good和Bad的举例, 这里仅列出比较常用的几项.
- 文件名要蛇形命名:
lowercase_with_underscores
. 类名:UpperCamelCase
. - 对自己程序的文件, 两种import都可以(package开头或者相对路径), 但是要保持一致.
- Flutter程序嵌套比较多, 要用结尾的
,
来帮助格式化.
本文缘由
年初的时候学了一阵子Flutter, 写了各种大小demo. 结果隔了两个月之后, 突然心血来潮想写个小东西, 打开Android Studio, 首先发现创建Flutter程序的按钮都不见了. (估计是Android Studio4.0升级之后Flutter的插件没跟上).
接着用命令行创建了工程, 打开之后稍微整理了一下心情, 然后就....懵逼了.
突然不知道如何下手.
宏观的东西还记得, 要用什么package, 基本常用的几个Widget都是啥, 但是微观的, 忘了函数和数组都是咋定义的了.
这种懵逼的状态令我很愤怒, 果然是上年纪了吗, 无缝切换个语言都不行.
于是就想着还是写个备忘录吧.
References
Dart Memo for Android Developers的更多相关文章
- 【Android Developers Training】 9. 覆盖于布局之上的Action Bar
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 【Android Developers Training】 8. 定义Action Bar风格
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 【Android Developers Training】 7. 添加Action Buttons
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 【Android Developers Training】 6. 配置Action Bar
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 【Android Developers Training】 5. 序言:添加Action Bar
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 【Android Developers Training】 4. 启动另一个Activity
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 【Android Developers Training】 3. 构建一个简单UI
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 【Android Developers Training】 0. 序言:构建你的第一个应用
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- 【Android Developers Training】 2. 运行你的应用
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
随机推荐
- tomcat启动失败怎么回事?
1.系统环境没有配置好 2.web.xml文件里有错误拼写
- java链接redis
创建maven项目 2.导入jar包 <dependencies> <dependency> <groupId>redis.clients</groupId& ...
- PHP数组简单操作
1.数字索引数组 1.1创建一个数组 php中最常用的两个类型是:数组,字符串.数组也分为两种,一种是数字索引,一种是关键是索引,关键字索引有点像python中字典的意思.数字索引类型的数组的创建方法 ...
- EF用导航熟悉遍历从表时,删除主表出错
var entitys= Repository.Table.Where(a => ids.Contains(a.UUID)).ToList(); entitys.ForEach(a => ...
- pandas如何逐行需改DataFrame
逐行修改DataFrame而不会报SettingwithCopyWarning警告的方法: df.iloc[行数,df.columns.get_loc(列名)]=new_value 参考:https: ...
- seacms_6.4.5 前台任意代码执行漏洞分析
环境搭建 1.下载安装包 下载地址: 链接:https://pan.baidu.com/s/1uw_VnxnvG4GGEae4TRsGGw 密码:cd48 2.常规安装 漏洞复现 poc1: http ...
- Spring boot Sample 004之spring-boot-configuration-yaml
一.环境 1.1.Idea 2020.1 1.2.JDK 1.8 二.目的 通过yaml文件配置spring boot 属性文件 三.步骤 3.1.点击File -> New Project - ...
- 点击label时text输入框被选中
当点击label标签时,能够选中与其对应的输入框,有2种方式,采用第一种时会产生太多的id,推荐第二种. <form action="03.php"> <labe ...
- 判断IP地址的合法性
每台计算机都有独一无二的编号,称为ip地址,每个合法的ip地址由‘.’分隔开的4个数字组成,每个数字的取值范围为0--255 输入一个字符串,判断其是否为合法的IP地址,若是输出‘YES’,否则输出‘ ...
- Java实现 LeetCode 806 写字符串需要的行数 (暴力模拟)
806. 写字符串需要的行数 我们要把给定的字符串 S 从左到右写到每一行上,每一行的最大宽度为100个单位,如果我们在写某个字母的时候会使这行超过了100 个单位,那么我们应该把这个字母写到下一行. ...