一、Dart介绍:

Dart是由谷歌开发的计算机编程语言,它可以被用于web、服务器、移动应用 和物联网等领域的开发。Dart诞生于2011年,号称要取代JavaScript。但是过去的几年中一直不温不火。直到Flutter的出现现在被人们重新重视。
要学Flutter的话我们必须首先得会Dart。

官网:https://dart.dev/

1、Dart环境搭建:

要在我们本地开发Dart程序的话首先需要安装Dart Sdk

官方文档:https://dart.dev/get-dart

windows(推荐): http://www.gekorm.com/dart-windows/
mac:如果mac电脑没有安装brew这个工具首先第一步需要安装它: https://brew.sh/

brew tap dart-lang/dart
brew install dart

2、Dart 开发工具:

Dart的开发工具有很多: IntelliJ IDEA 、 WebStorm、 Atom、Vscode等,这里我们主要给大家讲解的是如果在Vscode中配置Dart。

  • 1、找到vscode插件安装dart
  • 2、找到vscode插件安装code runner Code Runner 可以运行我们的文件

3、示例:

main(){//main是程序的唯一入口print('你好 dart');//输出语句print("你好 dart1");//可以是单引号也可以是双引号
}
  • 入口方法的两种定义方式:
main(){print('你好dart');
}
//表示main方法没有返回值
///也是注释
void main(){print('你好dart');
}

二、dart基本规则

1、Dart 变量:

dart是一个强大的脚本类语言,可以不预先定义变量类型 ,自动会类型推倒,dart中定义变量可以通过var关键字可以通过类型来申明变量,如:

    var str='this is var';String str='this is var';int str=123;
  • 注意: var 后就不要写类型,写了类型不要var,两者都写var a int = 5;报错。
    示例:
void main() {var str='你好dart';var myNum=1234;print(str);print(myNum);//字符串String str='你好dart';print(str);//数字类型int myNum=12354;print(myNum);//dart里面有类型校验var str='';str=1234;//报错print(str);String str = "2131242";print(str);int myNum = 1243214;print(myNum);
}

2、Dart 常量: final 和 const修饰符

  • const值不变 一开始就得赋值
  • final 可以开始不赋值 只能赋一次 ; 而final不仅有const的编译时常量的特性,最重要的它是运行时常量,并且final是惰性初始化,即在运行时第一次使用前才初始化。
  • 注意:永远不改量的量,请使用final或const修饰它,而不是使用var或其他变量类型。
final name = 'Bob'; // Without a type annotation
final String nickname = 'Bobby';
const bar = 1000000; // Unit of pressure (dynes/cm2)
const double atm = 1.01325 * bar; // Standard atmosphere
*/
void main() {/*var str='this is a str';str='你好 str';print(str);int myNum=1234;myNum=4567;print(myNum);*///const常量const PI=3.14159;PI=123.1243; //错误的写法 常量不可以修改print(PI);// final 常量final PI=3.14159;PI=124214.214124;   //错误写法print(PI);final a = new DateTime.now(); //const不能这么写,因为a是在运行是被赋值的,刚定义时没被赋值print(a); //2019-05-10 15:59:02.966122const a=new DateTime.now();   //报错了
}

3、Dart的命名规则:

  • 变量名称必须由数字、字母、下划线和美元符($)组成。
  • 注意:标识符开头不能是数字
  • 标识符不能是保留字和关键字。
  • 变量的名字是区分大小写的如: age和Age是不同的变量。在实际的运用中,也建议,不要用一个单词大小写区分两个变量。
  • 标识符(变量名称)一定要见名思意 :变量名称建议用名词,方法名称建议用动词。
void main() {var $ = 'dd';print($);var str1 = '2134214';var 2str='xxx';   //错误var if='124214';  //错误//变量的名字是区分大小写的var age = 20;var Age = 30;print(age);print(Age);//变量的名字最好具有意义var price = 12;var name = 124;
}

三、dart数据类型

Dart中支持以下数据类型:
1、常用数据类型:

  • Numbers(数值):``intdouble`
  • Strings(字符串): String
  • Booleans(布尔): bool
  • List(数组): List,在Dart中,数组是列表对象,所以大多数人只是称它们为列表
  • Maps(字典): Map,通常来说,Map 是一个键值对相关的对象。 键和值可以是任何类型的对象。每个 键 只出现一次, 而一个值则可以出现多次。

2、项目中用不到的数据类型 (用不到):

  • Runes:Rune是UTF-32编码的字符串。它可以通过文字转换成符号表情或者代表特定的文字。
main() {var clapping = '\u{1f44f}';print(clapping);print(clapping.codeUnits);print(clapping.runes.toList());Runes input = new Runes('\u2665  \u{1f605}  \u{1f60e}  \u{1f47b}  \u{1f596}  \u{1f44d}');print(new String.fromCharCodes(input));
}
  • Symbols:Symbol对象表示在Dart程序中声明的运算符或标识符。您可能永远不需要使用符号,但它们对于按名称引用标识符的API非常有用,因为缩小会更改标识符名称而不会更改标识符符号。要获取标识符的符号,请使用符号文字,它只是#后跟标识符:
    在 Dart 中符号用 # 开头来表示,入门阶段不需要了解这东西,可能永远也用不上。
    http://dart.goodev.org/guides/libraries/library-tour#dartmirrors---reflection

1、字符串类型

void main(){//1、字符串定义的几种方式var str1='this is str1';var str2="this is str2";print(str1);print(str2);String str1='this is str1';String str2="this is str2";print(str1);print(str2);String str1= '''this is str1this is str1this is str1''';print(str1);String str1="""this is str1this is str1this is str1""";print(str1);//2、字符串的拼接String str1='你好';String str2='Dart';print("$str1 $str2");//两个变量间隔的空格也会加进去。print(str1 + str2);print(str1 +" "+ str2);
}

2、数值型

void main() {//1、int   必须是整型int a = 123;a = 45;print(a);a = 45.0; //报错//2、double  既可以是整型 也可是浮点型double b = 23.5;b = 24;print(b);//3、运算符// + - * / %var c = a + b;print(c);
}

3、布尔类型

void main(){//1、boolbool flag1=true;print(flag1);bool flag2=false;print(flag2);//2、条件判断语句var flag=true;if(flag){print('真');}else{print('假');}// var a=123;// var b='123';// if(a==b){//   print('a=b');// }else{//    print('a!=b');// }var a=123;var b=123;if(a==b){print('a=b');}else{print('a!=b');}
}

4、list类型

void main() {//1、第一种定义List的方式var l1 = ['aaa', 'bbbb', 'cccc'];print(l1);print(l1.length);print(l1[1]);//2、第二种定义List的方式var l2 = new List();l2.add('张三');l2.add('李四');l2.add('王五');print(l2);print(l2[2]);//3、定义List指定类型var l3 = new List<String>();l3.add('张三');//l3.add(123);//报错print(l3);
}

5、maps类型

void main() {//第一种定义 Maps的方式var person = {"name": "张三","age": 20,"work": ["程序员", "送外卖"]//可以嵌套};print(person);print(person["name"]);print(person["age"]);print(person["work"]);//第二种定义 Maps的方式var p = new Map();p["name"] = "李四";p["age"] = 22;p["work"] = ["程序员", "送外卖"];print(p);print(p["age"]);
}

6、判断数据类型:is关键字

void main() {var str = '1234';if (str is String) {print('是string类型');} else if (str is int) {print('int');} else {print('其他类型');}var str_1 = 123;if (str_1 is String) {print('是string类型');} else if (str_1 is int) {print('int');} else {print('其他类型');}
}

flutter学习笔记之dart(转载至B站up主筱筱知晓的大地老师)相关推荐

  1. Flutter学习笔记(10)--容器组件、图片组件

    如需转载,请注明出处:Flutter学习笔记(10)--容器组件.图片组件 上一篇Flutter学习笔记(9)--组件Widget我们说到了在Flutter中一个非常重要的理念"一切皆为组件 ...

  2. Flutter学习笔记 —— 完成一个简单的新闻展示页

    Flutter学习笔记 -- 完成一个简单的新闻展示页 前言 思路分析 案例代码 结束语 上图 前言 刚学Flutter不久,今天我们来看看如何使用 Container & ListView实 ...

  3. Flutter学习笔记(18)--Drawer抽屉组件

    如需转载,请注明出处:Flutter学习笔记(18)--Drawer抽屉组件 Drawer(抽屉组件)可以实现类似抽屉拉出和推入的效果,可以从侧边栏拉出导航面板.通常Drawer是和ListView组 ...

  4. Flutter学习笔记(一)

    Flutter学习笔记(一) 学习前言 dart安装 vscode配置 持续更新中 学习前言 最近准备学习Flutter,参考B站 Dart Flutter教程_2022精讲Dart Flutter3 ...

  5. Flutter学习笔记--Gridview网格组件制作相册

    Flutter学习笔记–Gridview网格组件制作相册 效果: GridView可以构建一个二维网格列表,其官方定义参考: https://book.flutterchina.club/chapte ...

  6. Flutter学习笔记 —— CustomPainter自定义画布绘制爱心

    Flutter学习笔记 -- CustomPainter自定义画布绘制爱心 前言 效果图 代码示例 温馨提示 结束语 前言 最近在学习Flutter中 Canvas相关内容,今天尝试写了一个爱心Dem ...

  7. MaxScript 学习笔记【有转载】

    MaxScript 学习笔记[有转载] 1. string string类型的变量是一个数组,下列操作合法: strName = $.name -- output: "Shemmy_03&q ...

  8. Flutter学习笔记(二)登陆注册界面的实现

    Flutter学习笔记(二)登陆注册界面的实现 简单的登录和注册界面的布局 SharedPreferences存储数据 页面路由和参数传递的心得 这几天按照顺序先完成了登录和注册的页面,没有什么特别的 ...

  9. Flutter学习笔记之-圆形头像实现方式

    Flutter学习笔记之-圆形头像实现方式 开发中如何实现类似圆形图片 Container+BoxDecoration来实现圆角图像 class DemoWidget extends Stateles ...

最新文章

  1. 2021年夏天找SAP新项目的几点感想
  2. [转]浅谈:国内软件公司为何无法做大做强
  3. Java深度历险(五)——Java泛型
  4. 洛谷 P2935 [USACO09JAN]最好的地方Best Spot
  5. VTK:PolyData之ImplicitModeller
  6. Ext.tab.Panel页签
  7. WPF Treeview第三层横向排列
  8. centos图形化桌面的文件在哪_CentOS 安装图形桌面
  9. python安装教程-01-Python安装教程与特色介绍-小白python入门基础
  10. dmx512如何帧同步_DMX512协议的前世今生 数据格式及传输简介
  11. 增长模型拆解:分享有礼裂变玩法的底层逻辑与细节设计
  12. 树莓派计算器c语言,树莓派与Python实验9——Tkinter计算器实验
  13. 毕业有感-抉择的重要性
  14. ps快捷键对应的英文字母缩写
  15. 电感设计中的细节问题:磁芯损耗、线圈设计
  16. c语言memset() 函数
  17. linux无法删除软件,Linux某些软件无法卸载问题
  18. opencv-contours轮廓提取
  19. 如何使用 Podman 签署和分发容器镜像
  20. 形式语言与自动机及其在NLP中的应用

热门文章

  1. 用JS实现猜数字游戏
  2. 水电设计院信息管理系统1.0
  3. IDEA(Java Web 开发) 实时代码模板合集
  4. 输入快递单号查询不到物流怎么办
  5. excel条形图-蝴蝶图的画法
  6. 小米手机计算机软件,手机计算器
  7. 我为什么鼓励你读博士?
  8. 微信小程序官方bug
  9. 数电实验:数字时钟设计 (经验分享,仅供参考)
  10. python 爬取海量网易云评论并写入数据库