dart的基本语法(一)
Hello world
安装dart的环境就不赘述了,无脑安装就可以了,安装过程中好像需要梯子(vpn),我装的时候失败好多次,我的梯子不能用了,准备不装了的时候,莫名其妙的装好了。迷の操作。惯例,一门新的语言必须要传统一下。
main(){
print("hello world");
}
直接就输出了 “hello world”,没有那么多繁杂的语法。
变量类型
定义变量
main(){
var age=24; // 使用var来定义变量,会自动的识别类型
int Age=24; // 直接使用int来定义也可以
age="25"; // (报错)类型检验自动识别类型以后,第一次什么类型之后就是什么类型了
print(age);
}
定义常量
main(){
// 赋值一次后就不能改变了,称之为常量,(感觉我说的就是废话)
final age=23;
const Age=25;
print(Age);
print(age);
}
final与const的区别:final 可以开始不赋值 只能赋一次 ; 而final不仅有const的编译时常量的特性,最重要的它是运行时常量,并且final是惰性初始化,即在运行时第一次使用前才初始化。
main(){
final time=new DateTime.now();
const Time=new DateTime.now(); // 报错
print(time);
}
字符拼接
main(){
String name="kign";
String age= "23";
print(name +":"+ age);
print("${name}+:+${age}");
}
list的定义
main() {
List l1 = ["aaa", "bbb", "ccc"];
print(l1[1]);
List l2 = [
{'age': 12},
{"age": 34}
];
print(l2[0]["age"]);
var l3 = new List<String>();
l3.add("value");
l3.add("page");
print(l3[1]);
}
Map的定义
main() {
Map m1={"name":"张三","age":24,"work":["程序员","外卖员"]};
print(m1["work"]);
var p=new Map();
p["name"]="李四";
p["age"]=23;
p["work"]=["程序员","外卖员"];
print(p["age"]);
}
类型判断
main() {
var age = 25;
if (age is int) { // is关键字
print("int类型数据");
} else {
print("其它类型数据");
}
}
??运算符
判断当前是否为空,为空则为??后的值,不为空则为当前赋值的值
main() {
var a;
var b = a ?? 10;
print(b);
var c = 22;
var d = c ?? 10;
print(d);
}
输出:
10
22
??=运算符
判断当前变量是否为空,为空则将运算符后的数值赋值给当变量
main() {
var a;
a??=23;
print(a);
var b=10;
b??=23;
print(b);
}
输出:
23
10
类型转换
main() {
var a="12";
var b=double.parse(a);
print(b);
var c="13";
print(c.toString());
}
集合循环
list
List myList=['香蕉','苹果','西瓜'];
// 最普通的循环
for(var i=0;i<myList.length;i++){
print(myList[i]);
}
// forEach
for(var item in myList){
print(item);
}
// forEach
myList.forEach((value){
print("$value");
});
// A数组扩大二倍赋值给B数组
List myList=[1,3,4];
List newList=new List();
for(var i=0;i<myList.length;i++){
newList.add(myList[i]*2);
}
print(newList);
// A数组扩大二倍给B数组
List myList=[1,3,4];
var newList=myList.map((value){
return value*2;
});
print(newList.toList());
list内容的判断
// 一
List myList=[1,3,4,5,7,8,9];
var newList=myList.where((value){ // 将数组中大于5的给予一个新数组
return value>5;
});
print(newList.toList());
// 二
List myList=[1,3,4,5,7,8,9];
var f=myList.any((value){ //只要集合里面有满足条件的就返回true
return value>5;
});
print(f);
// 三
List myList=[1,3,4,5,7,8,9];
var f=myList.every((value){ //每一个都满足条件返回true否则返回false
return value>5;
});
print(f);
Set的循环
main() {
var s=new Set();
s.addAll([1,222,333]);
s.forEach((value)=>print(value));
}
Map的循环
main() {
Map person={
"name":"张三",
"age":20
};
person.forEach((key,value){
print("$key---$value");
});
}
dart的基本语法(一)的更多相关文章
- dart 如何优雅的避空
前言 对于每一个程序员来说,空指针异常应该是基本都会遇到过的异常,而且这个异常出现的概率还比较大. 但是,空指针异常又是最容易解决的异常,因为只要加个非空判断就可以避免了. 本篇通过对比一般非空判断和 ...
- Dart编程语言入门
Dart基础入门语法介绍,详细说明可以查看相关视频<Dart编程语言入门>. 变量与常量 变量 1.使用 var 声明变量,默认值为 null var a;//null a = 10; 2 ...
- Flutter学习笔记--Dart基础
前言 Flutter使用Dart语言开发, Dart是面向对象编程语言, 由Google2011年推出, 目前最新版本是2.4.0. 工欲善其事,必先利其器. 为了更好的开发Flutter应用, 我们 ...
- Dart Memo for Android Developers
Dart Memo for Android Developers Dart语言一些语法特点和编程规范. 本文适合: 日常使用Kotlin, 突然想写个Flutter程序的Android程序员. Dar ...
- flutter--Dart基础语法(一)
一.前言 Flutter 是 Google 开源的 UI 工具包,帮助开发者通过一套代码库高效构建多平台精美应用,Flutter 开源.免费,拥有宽松的开源协议,支持移动.Web.桌面和嵌入式平台. ...
- Flutter教程- Dart语言规范-知识点整理
Flutter教程- Dart语言知识点整理 Dart语言简介 Dart语言介绍 ① 注释的方式 ② 变量的声明 ③ 字符串的声明和使用 ④ 集合变量的声明 ⑤ 数字的处理 ⑥ 循环的格式 ⑦ 抛异常 ...
- Flutter实例一--底部规则导航栏制作
先来看看制作效果: 前置知识--StatefulWidget StatefulWidget具有可变状态(state)的窗口组件(widget).使用时要根据变化状态,调整State值, 能够快速初始 ...
- Flutter之环境配置与项目搭建
Flutter之环境配置与项目搭建 一,介绍 1.1,Dart Dart 是一种 易于学习. 易于扩展.并且可以部署到 任何地方 的 应用 编程 语言.并且同时借鉴了Java和JavaScript.D ...
- Flutter 底部导航栏bottomNavigationBar
实现一个底部导航栏,包含3到4个功能标签,点击对应的导航标签可以切换到对应的页面内容,并且页面抬头显示的内容也会跟着改变. 实际上由于手机屏幕大小的限制,底部导航栏的功能标签一般在3到5个左右,如果太 ...
随机推荐
- java基础第十八篇之单元测试、注解和动态代理
1:单元测试 1)JUnit是一个Java语言的单元测试框架,这里的单元指的就是方法 2)单元测试用来替换以前的main方法 1.1 Junit测试的步骤 1:在方法的上面加上 @Test 2:将ju ...
- asp.net core系列 68 Filter管道过滤器
一.概述 本篇详细了解一下asp.net core filters,filter叫"筛选器"也叫"过滤器",是请求处理管道中的特定阶段之前或之后运行代码.fil ...
- python接口自动化(三十一)--html测试报告通过邮件发出去——下(详解)
简介 本篇总结了 QQ (SSL)邮箱和 163(非SSL) 邮箱发送邮件,专治各种不行,总之看完这篇以后麻麻再也不用担心我的邮件收不到了.以下代码兼容 python2 和 python3,运行无异常 ...
- Java底层技术系列文章-hashcode深入理解
带着问题去理解: 1. Object类HashCode方法是如何实现的,和String类有什么区别? 2.HashCode和Equals之间的关系? 一.hashCode作用 hashCode方法返回 ...
- [Poi2012]Festival 题解
[Poi2012]Festival 时间限制: 1 Sec 内存限制: 64 MB 题目描述 有n个正整数X1,X2,...,Xn,再给出m1+m2个限制条件,限制分为两类: 1. 给出a,b (1 ...
- Python之爬虫有感(一)
urllib.request.Request('URL',headers = headers)User-Agent 是爬虫和反爬虫斗争的第一步,发送请求必须带User—Agent使用流程: 1. ...
- 洛谷P2057 [SHOI2007]善意的投票 题解
题目链接: https://www.luogu.org/problemnew/show/P2057 分析: 由0和1的选择我们直觉的想到0与S一堆,1与T一堆. 但是发现,刚开始的主意并不一定是最终的 ...
- Excel催化剂开源第21波-使用Advanced Installer打包VSTO几个注意问题
STO项目开发完毕完,最终需要分发给用户,需要Excel催化剂用的是Clickonce发布方式,但也面临到部分用户环境要求太高,设置过程太繁锁,而要求有一些简单的安装方式,用打包工具将其打包为一个EX ...
- SpringBoot2.0集成WebSocket,实现后台向前端推送信息
感谢作者,支持原创: https://blog.csdn.net/moshowgame/article/details/80275084 什么是WebSocket? WebSocket协议是基于TCP ...
- Android解决RecyclerView中的item显示不全方案
最近的项目中实现订单确定页面.需要使用ScrollView嵌套RecyclerView,当RecyclerView中的item数量比较多时,就会出现item只显示一部分数据,并没有将用户勾选的商品数量 ...