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个左右,如果太 ...
随机推荐
- MyBatis 核心配置综述之Executor
目录 MyBatis四大组件之 Executor执行器 Executor的继承结构 Executor创建过程以及源码分析 Executor接口的主要方法 Executor 的现实抽象 上一篇我们对Sq ...
- APP系统架构设计初探
一,图片体验的优化. 在手机上显示图片,速度是一个非常重要的体验点,试想,如果您打开一个网站,发现里面的图片一直显示失败或者是x,稍微做得好一点的,可能是一个不消失的loading或者是菊花等等,但不 ...
- 洛谷P2172 [国家集训队]部落战争 题解
题目链接:https://www.luogu.org/problemnew/show/P2172 分析: 不要被[国家集训队]的标签吓到,其实这题不是很难. 本题可以对比P4304 [TJOI2013 ...
- Excel催化剂开源第50波-Excel与PowerBIDeskTop互通互联之第四篇
答应过的全盘分享,也必承诺到底,此篇PowerBI功能分享的最后一篇,讲述如何导出数据模型的元数据,笔者定义其为模型的数据字典. 此篇对应功能实现出自:第6波-导出PowerbiDesktop模型数据 ...
- C语言编程入门之--第一章初识程序
第一章 初识程序 导读:计算机程序无时不刻的影响着人类的生活,现代社会已经离不开程序,程序的作用如此巨大,那么程序到底是什么呢?本章主要讨论程序的概念,唤起读者对程序的兴趣,同时对C语言程序与其它语言 ...
- mysql查看视图用户
select `DEFINER` from information_schema.VIEWS;
- markdown表情
Emoji表情 将对应emoji表情的符号码复制后输入你的markdown文本即可显示emoji表情. 如:blush:,显示为
- 关于引入js文件乱码的问题
对于大多数的web页面,我们一般都是使用如下两种编码:UTF-8.GB2312.所以我们只需要同意页面和js编码就可以解决乱码问题: 对于GBK页面引用编码为UTF-8编码的JavaScript文件如 ...
- 移动端开发用touch事件还是click事件
前端开发现在包含了跨浏览器,跨平台(不同操作系统)和跨设备(不同尺寸的设备)开发. 在移动开发的过程中,到底选取touch事件还是click事件?对了,请不要鄙视click,click在移动端开发用着 ...
- ASP.NET Core on K8S深入学习(1)K8S基础知识与集群搭建
在上一个小系列文章<ASP.NET Core on K8S学习初探>中,通过在Windows上通过Docker for Windows搭建了一个单节点的K8S环境,并初步尝试将ASP.NE ...