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个左右,如果太 ...
随机推荐
- [ZJOI2006]物流运输 题解
[ZJOI2006]物流运输 时间限制: 10 Sec 内存限制: 162 MB 题目描述 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个 ...
- DAX 第二篇:计算上下文
计算上下文是计算公式的环境,任何DAX表达式都是在上下文中求值的.行上下文和筛选上下文是DAX中仅有的上下文类型,把这两种上下文称为计算上下文.计算上下文用于限定公式计算的环境,当上下文变化时,相同的 ...
- pgsql查询优化之模糊查询
前言 一直以来,对于搜索时模糊匹配的优化一直是个让人头疼的问题,好在强大pgsql提供了优化方案,下面就来简单谈一谈如何通过索引来优化模糊匹配 案例 我们有一张千万级数据的检查报告表,需要通过检查报告 ...
- 【Android UI】顶部or底部菜单的循环滑动效果一
实现了分页的滑动效果,做的demo流畅运行 注:貌似支持的样式(控件)有一定的限制,我试过短信的listview页面,暂无法实现滑动效果 java文件:MainActivity.java.Activi ...
- C#各版本新增加功能
本系列文章主要整理并介绍 C# 各版本的新增功能. C# 8.0 C#8.0 于 2019年4月 随 .NET Framework 4.8 与 Visual Studio 2019 一同发布,但是当前 ...
- python中的字典,if_while使用
1.定义两个字典用于表述你的个人信息 第一个字典存放你的这些信息:姓名.性别.年龄.身高第二个字典存放你的其他信息:性格.爱好.座右铭将两个字典合并为第三个字典之后,打印出来 觉得自己很年轻的,可以去 ...
- 十三、asp.net中Repeater控件用法笔记
大家可能都对datagrid比较熟悉,但是如果在数据量大的时候,我们就得考虑使用 repeater作为我们的数据绑定控件了.Repeater控件与DataGrid (以及DataList)控件的主要区 ...
- eclipse(java windows)
百度云:链接:http://pan.baidu.com/s/1i4Zjv97 密码:u0qh 官方下载网址:http://www.eclipse.org/downloads/eclipse-pa ...
- context创建过程解析(一)之deployDescriptors
总结:主要是创建Context对象,并且将默认context配置,host级别配置,context配置的值设置进去,设置docBase,如果是war包就解压到webapp的目录中,重新设置docBas ...
- SQL Server 插入数据时自增长列如何指定数值
SQL Server 表在导入数据时,有时需要将自增长列指定数值,来保证导入前后的数据完全一致,如何实现? SQL Server 提供了方法: SET IDENTITY_INSERT,允许将显式值插入 ...