从下面开始学习DART编程

以下是一个简单的示例:

main(){  var number = 42;  print(number);}程序说明,dart是一个强大的脚本类语言,可以不预先定义变量类型 ,自动会类型推倒,主程序必须要先有一个main()主函数方法以上是基本示例   至于函数返回值 和参数,暂时不讲,

在学习Dart语言时,请记住以下事实和概念:

  • 在变量中可以放置的所有东西都是对象,而每个对象都是的实例。无论数字、函数和null都是对象。所有对象都继承自[Object]类。
  • 尽管Dart是强类型的,但类型声明是可选的,因为Dart可以推断类型。 在上面的代码中,数字被推断为int类型。 如果要明确说明不需要任何类型,请使用[特殊类型dynamic]。
  • Dart支持通用类型,如List<int>(整数列表)或List<dynamic>(任何类型的对象列表)。
  • Dart支持顶级函数(如main()),以及绑定到类或对象(分别是静态方法(static)和实例(instance)方法)的函数。您还可以在函数(嵌套或局部函数)中创建函数。
  • 类似地,Dart支持顶级变量,以及绑定到类或对象(静态和实例变量)的变量。实例变量有时被称为字段或属性。
  • 与Java不同,Dart没有公开、保护和私有的关键字。如果标识符以下划线(_)开头,则该标识符对其库是私有的。有关详细信息,请参见[库和可见性]。
  • 标识符可以以字母或下划线(_)开头,然后是这些字符加上数字的任何组合。
  • 有时候,某事物是一个表达(expression )还是一个语句(statement)是很重要的,所以这两个词要准确。
  • Dart工具可以报告两种问题:警告和错误。警告只是表明您的代码可能不工作,但它们不会阻止您的程序执行。错误可以是编译时错误,也可以是运行时错误。编译时错误阻止了代码的执行;运行时错误导致代码执行时引发异常。

dart 关健字比健多,

下标中列出了Dart中的所有关键词

       
abstract (1) do import (1) super
as (1) dynamic (1) in switch
assert else interface (1) sync* (2)
async (2) enum is this
async* (2) export (1) library (1) throw
await (2) external (1) mixin (1) true
break extends new try
case factory (1) null typedef (1)
catch false operator (1) var
class final part (1) void
const finally rethrow while
continue for return with
covariant (1) get (1) set (1) yield (2)
default if static (1) yield*
deferred (1) implements (1)    

(1)带有上标1的单词是内置标识符。避免使用内置标识符作为标识符。如果尝试为类或类型名使用内置标识符,则会发生编译时错误。
(2)使用上标2的单词是在Dart的1.0版本之后添加的与异步支持相关的更新的、有限的保留字。在以async, async*, 或者 sync* 标记的任何函数体中,不能使用async, await, 或者 yield作为标识符。有关更多信息,请参见异步支持。

关键字表中的所有其他词都是保留词。不能使用保留词作为标识符。

变量与默认值

定义变量可以  var  n =5;   也可以简成        int  n = 5; 暂不支持golang或者python  那种高级多定义方法

须要说明的是    var 后就不要写类型 ,  写了类型 不要var   两者都写   var  a int  = 5;  报错

定义字符串:

var s1 = 'Single quotes work well for string literals.';
var s2 = "Double quotes work just as well."; var s3 = 'It\'s easy to escape the string delimiter.'; var s4 = "It's even easier to use the other delimiter.";

同样支持 \n \t \r 这些写法

以下关于数字定义

数字类型 numbers  有二种形式  一种是int   长度给操作系统有关,,32 位64位,最高长度不一样。。

一种是double   精度给ieee标准有关。。

int x = 1;16进制写法
int hex = 0xDEADBEEF; int bigInt = 34653465834652437659238476592374958739845729

关于字符定义

关于布尔数据类型详细说明:未初始化的变量的初始值为null。甚至具有数字类型的变量最初也是null,因为数字——就像dart中的其他东西一样——是对象。程序默认值:如果变量只申明没有定义只会有默认值 ,转换类型失败也会返回默认值 ,稍后补充

int lineCount;
assert(lineCount == null); // assert类似于if 语句,出错后会标飘红报错


Final 和 const修饰符  、、// 定义常量

const值不变 一开始就得赋值
final 可以开始不赋值 只能赋一次 ; 这是两者的差别。
永远不改量的量,请使用final或const修饰他,而不是使用var或其他变量类型。最终变量只能设置一次;const变量是一个编译时常数。(Const变量是隐式最终变量。)最终的顶级或类变量在第一次使用时被初始化。注意:实例变量可以是final,但不能是const。[实例变量定义在对象一级,它可以被类中的任何方法或者其他类中的方法访问,但是不能被静态方法访问。]

这里有一个创建和设置final变量的例子:

final name = 'Bob'; // Without a type annotation
final String nickname = 'Bobby'; 

您无法更改final变量的值:

name = 'Alice'; // Error: a final variable can only be set once.
//这个是错误示例,在使用时final变量是不可以更改的 

对于想要在编译时确定并且不再变的变量,使用const。如果const变量位于类级别,则将其标记为静态const。在声明该变量时,将该值设置为编译时常量,例如数字或字符串字面量、const变量或常量数字算术运算的结果:

const bar = 1000000; // Unit of pressure (dynes/cm2)
const double atm = 1.01325 * bar; // Standard atmosphere 

const关键字不只是声明常量变量。您还可以使用它来创建常量值,以及声明创建常量值的构造函数。任何变量都可以赋一个常量值。

var foo = const [];
final bar = const []; const baz = []; // Equivalent to `const []`

您可以更改一个非final的非const变量的值,即使它曾经有一个const值:  这儿foo  是var 定义的,,所以值能改变,,

foo = [1, 2, 3]; // Was const [] 这儿返回正确值 

你不能改变const变量的值:  baz是  const定义的  不能改变

baz = [42]; // Error: Constant variables can't be assigned a value.

区别一:final 要求变量只能初始化一次,并不要求赋的值一定是编译时常量,可以是常量也可以不是。而 const 要求在声明时初始化,并且赋值必需为编译时常量

区别二:final 是惰性初始化,即在运行时第一次使用前才初始化。而 const 是在编译时就确定值了。

编译时常量指的是:字面量(如数字、bool、字符串、List的字面量形式)、其它常量 或者 常量的算术运算,也可以是这些的组合形式(递归要求),简单地说常量就是可以在编译时确定的值。



转载于:https://www.cnblogs.com/fgxwan/p/9745700.html

Dart简易教程 (1)---数据类型 运算符,类转换换相关推荐

  1. 【Dart 教程系列第 28 篇】Dart中的 Map 和实体类的相互转换

    这是[Dart 教程系列第 28 篇],如果觉得有用的话,欢迎关注专栏. 首先声明一个实体类 class People {String name; // 姓名String area; // 地区Str ...

  2. 杨老师课堂_Java教程第六篇之引用数据类型_类的运用

    今天主要是讲解以下知识点: 1.自定义类型的定义及使用 2.自定义类的内存图 3.ArrayList集合的基本功能 4.王者荣耀随机迎战案例及库存案例代码优化 01引用数据类型_类 * A: 数据类型 ...

  3. 运算符重载(4.基本数据类型转换为类类型)【非重点】

    知识点1.基本数据类型转换为类类型的两种方式 1.通过构造函数进行转换 例题:如下列代码通过用构造函数的方式,将一个double的数据变成一个crmb类 #include <iostream&g ...

  4. Solidity 简易教程0x001

    Solidity是以太坊的主要编程语言,它是一种静态类型的 JavaScript-esque 语言,是面向合约的.为实现智能合约而创建的高级编程语言,设计的目的是能在以太坊虚拟机(EVM)上运行. 本 ...

  5. Python 程序设计快速入门简易教程

    Python 程序设计快速入门简易教程 Python语言快速检索 一些需要知道的事 一个简单的Python程序 Python的基本数据类型 Python的基本运算符 Python的常用函数 impor ...

  6. Dart Flutter 教程【Dart部分】

    !!!笔记源自b站课程 此处是课程链接 写在前面: Dart有很多语法与其他语言比如C.Java都很像,有基础的友友们可以搭一下环境,简单看一下不同点即可.剩下的在开发实践中逐渐熟练~ 文章目录 Da ...

  7. JavaScript(一)(数据类型+运算符)

    JavaScript(一)(数据类型+运算符) 文章目录 JavaScript(一)(数据类型+运算符) 一.数据类型 1. 什么是 JavaScript 语言? 1.1 定义 1.2 实验环境 2. ...

  8. Unity3D Editor 编辑器简易教程

    Star 自定义编辑器简易教程 an introduction to custom editors 原文地址 http://catlikecoding.com/unity/tutorials/star ...

  9. dart参数传方法_为 JavaScript 开发人员准备的 Dart 参考教程

    Dart 是 Flutter 主要的开发语言,这一篇文章主要为 JavaScript 开发人员准备的 Dart 教程,我会用很详细的对比来参考,力争 JavaScript 开发人员可以快速的熟练使用 ...

最新文章

  1. [LOJ 6288]猫咪[CF 700E]Cool Slogans
  2. Oracle中的数据类型和数据类型之间的转换
  3. 静态成员函数调用方式--收藏帖子
  4. c++函数模板和类模板
  5. 理解 neutron(15):Neutron Linux Bridge + VLAN/VXLAN 虚拟网络
  6. oracle查询cpu占用率高,ORACLE杀掉cpu占用率高的session
  7. android studio怎么回退,如何回滚已经commit的代码(Android Studio)
  8. 你见过股市亏最惨的有多惨?
  9. error LNK2019: unresolved external symbol “__declspec(dllimport) public: __thiscall 的解决方案
  10. 【黑马JS笔记】BOM对象DOM对象事件
  11. 【ACL2020-CMU-Google】MobileBERT:用于资源受限设备的任务无关“瘦版”BERT
  12. mysql客户端介绍
  13. 高并发 多线程批量ping工具 nbping简介和使用
  14. java做报表_推荐6款常用的Java开源报表制作工具
  15. onedrive php接口,关于 onedrive 的 api 调用
  16. C语言 商业贷款计算器 等额本金 等额本息
  17. git pack文件过大
  18. 论文阅读——Multi-Task Learning Framework for Extracting Emoton Cause Span and Entailment in Conversations
  19. 三思系列:前人用GreenDao留下的坑,全线被扣了绩效
  20. DSP开发-C语言环境

热门文章

  1. 浏览器URL地址里一堆%或者6E616D6531之类的是啥?编码
  2. Android 10.0系统启动之init进程-[Android取经之路]
  3. Android 双击返回键退出程序 实现
  4. java打包没有src_maven 打包时,src/main/java目录下的xml等资源文件没有打包进去的问题...
  5. LiveData原理分析
  6. Android--Otto事件总线 -- 组件之间通讯框架使用 --模式解析
  7. Struts2标签库常用标签(转)
  8. 2017-2018-1 20155226《信息安全系统设计基础》第2周学习总结
  9. sharepoint试图筛选等于本人
  10. 《learning ROS for robotics programming》