当前位置: 首页 > news >正文

Dart 语言入门

引言

在学习Flutter之前,还是得先把基础打好,先来学习一下Dart的基础知识。

第一个dart 

import 'package:dart/dart.dart' as dart;main(List<String> arguments) {print('Hello world: ${dart.calculate()}!');
}

变量与常量

1.变量

Dart是一个强大的脚本类语言,可以不预先定义变量类型,自动会类型推导(有点kotlin的味道),Dart中定义变量可以通过var关键字可以通过类型来申明变量,如:

    var str='this is var';String str='this is var';int str=123;// 注意: var 后就不要写类型 ,  
//写了类型 不要var   两者都写   var  a int  = 5;  报错

2.常量(final 和 const修饰符)

const值不变,一开始就得赋值,

final可以开始不赋值,最后只能赋一次 ;

而final不仅有const的编译时常量的特性,最重要的它是运行时常量

并且final是惰性初始化,即在运行时第一次使用前才初始化.

永远不改量的量,请使用final或const修饰它,而不是使用var或其他变量类型。

    final name = 'Bob'; // Without a type annotationfinal String nickname = 'Bobby';const bar = 1000000; // Unit of pressure (dynes/cm2)const double atm = 1.01325 * bar; // Standard atmosphere


 

命名规则

  • 变量名称必须由数字、字母、下划线和美元符($)组成。
  • 注意:标识符开头不能是数字
  • 标识符不能是保留字和关键字。
  • 变量的名字是区分大小写的如: age和Age是不同的变量。在实际的运用中,也建议,不要用一个单词大小写区分两个变量。
  • 标识符(变量名称)一定要见名思意 :变量名称建议用名词,方法名称建议用动词

数据类型

  •   Numbers(数值):

          int
          double

  •   Strings(字符串):

          String

  •   Booleans(布尔) :

          bool

  •    List(数组):

          在Dart中,数组是列表对象,所以大多数人只是称它们为列表

  •   Maps(字典):

        Map 是一个键值对相关的对象。 键和值可以是任何类型的对象。每个 键 只出现一次, 而一个值则可以出现多次

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

数值类型数据

数值类型的数据比较好理解,就是int和double类型的数据等。

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

字符串类型数据

var str1='this is str1';
var str2="this is str2";
String str3="""this is str1this is str2this is str3""";

布尔类型数据

bool类型的数据无非就是true或者false

//1、bool// bool 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');}

List(数组)类型数据

数组类型的数据就是将一众合数据组成一个数组,选择这个数组中某一个数据可以由数组的index值来选择。

var l1=['aaa','bbbb','cccc'];print(l1);print(l1.length);print(l1[1]);//var l2=new List();l2.add('张三');l2.add('李四');l2.add('王五');print(l2);print(l2[2]);//如果我们需要让数组类型的数据中都由一种数据组成我们可以这样设置数组var l3=new List<String>();l3.add('张三');// l3.add(123);//报错,因为数据类型不匹配print(l3);

Map类型数据

Map数据类型我们其实可以看成是一种对象类型数据,这个在我们开发实践中很常见,

所有的json数据都基本上会采用Map,我们可以把Map理解成一种Key/Value类的数据形式,

var person={"name":"张三","age":20,"work":["程序员","送外卖"]};print(person);print(person["name"]);print(person["age"]);print(person["work"]);//另一种方式
var p=new Map();p["name"]="李四";p["age"]=22;p["work"]=["程序员","送外卖"];print(p);print(p["age"]);

基本运算符

描述操作符
一元后置操作符expr++ expr-- () [] . ?.
一元前置操作符expr !expr ~expr ++expr --expr
乘除* / % ~/
加减+ -
位移<< >>
按位与&
按位或|
按位异或^
逻辑与&&
逻辑或||
关系和类型判断>= > <= < as is is!
== !=
如果为空??
条件表达式expr1 ? expr2 : expr3
赋值= *= /= ~/= %= += -= <<= >>= &= ^= = ??=

相关文章:

  • mongodb config
  • 从零开始:CentOS系统下搭建DNS服务器的详细教程
  • 开源软件:颠覆创新的力量
  • 网安文件包含漏洞
  • 使用pygame建立一个简单的使用键盘方向键移动的方块小游戏
  • MVVM下的窗口关闭
  • npm 包管理工具
  • QT SQL
  • 大数据开发之离线数仓项目(3数仓数据同步策略)(可面试使用)
  • HTML5的新特性
  • vue3-深入组件-依赖注入
  • POI操作word表格,添加单元格,单元格对齐方法(不必合并单元格)
  • 已定式,未定式【高数笔记】
  • R-kknn包-类别插值可视化绘制
  • 2024美赛数学建模D题思路+模型+代码+论文(持续更新)
  • 【Leetcode】101. 对称二叉树
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 230. Kth Smallest Element in a BST
  • iOS | NSProxy
  • Java到底能干嘛?
  • jQuery(一)
  • LeetCode29.两数相除 JavaScript
  • Odoo domain写法及运用
  • PyCharm搭建GO开发环境(GO语言学习第1课)
  • TypeScript迭代器
  • 持续集成与持续部署宝典Part 2:创建持续集成流水线
  • 一份游戏开发学习路线
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • #define,static,const,三种常量的区别
  • $NOIp2018$劝退记
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (a /b)*c的值
  • (C语言)球球大作战
  • (floyd+补集) poj 3275
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (八)c52学习之旅-中断实验
  • (二)Eureka服务搭建,服务注册,服务发现
  • (一一四)第九章编程练习
  • (转)程序员技术练级攻略
  • (转载)虚函数剖析
  • *1 计算机基础和操作系统基础及几大协议
  • .NET MVC第三章、三种传值方式
  • .NET 常见的偏门问题
  • .net 怎么循环得到数组里的值_关于js数组
  • /bin/bash^M: bad interpreter: No such file ordirectory
  • @ConfigurationProperties注解对数据的自动封装
  • [100天算法】-每个元音包含偶数次的最长子字符串(day 53)
  • [20190113]四校联考
  • [Android] Upload package to device fails #2720
  • [Assignment] C++1
  • [C++] sqlite3_get_table 的使用