Dart简易教程 (1)---数据类型 运算符,类转换换
从下面开始学习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修饰符 、、// 定义常量
final 可以开始不赋值 只能赋一次 ; 这是两者的差别。
这里有一个创建和设置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 是在编译时就确定值了。
编译时常量指的是:字面量(如数字、bool、字符串、List的字面量形式)、其它常量 或者 常量的算术运算,也可以是这些的组合形式(递归要求),简单地说常量就是可以在编译时确定的值。
Dart简易教程 (1)---数据类型 运算符,类转换换的更多相关文章
- Dart 语言简易教程系列
google Fuchsia系统 及 dart语言简介 在 InteIIiJ IDEA 中搭建 Dart 的开发环境 Dart Linux 开发环境搭建 Dart 语言简易教程(一) Dart 语言简 ...
- JavaScript简易教程(转)
原文:http://www.cnblogs.com/yanhaijing/p/3685304.html 这是我所知道的最完整最简洁的JavaScript基础教程. 这篇文章带你尽快走进JavaScri ...
- JavaScript简易教程
这是我所知道的最完整最简洁的JavaScript基础教程. 这篇文章带你尽快走进JavaScript的世界——前提是你有一些编程经验的话.本文试图描述这门语言的最小子集.我给这个子集起名叫做“Java ...
- [转]Unity3D Editor 编辑器简易教程
Star 自定义编辑器简易教程 an introduction to custom editors 原文地址 http://catlikecoding.com/unity/tutorials/star ...
- flutter简易教程
跟Java等很多语言不同的是,Dart没有public protected private等关键字,如果某个变量以下划线 _ 开头,代表这个变量在库中是私有的.Dart中变量可以以字母或下划线开头,后 ...
- Silverlight实例教程 - 自定义扩展Validation类,验证框架的总结和建议(转载)
Silverlight 4 Validation验证实例系列 Silverlight实例教程 - Validation数据验证开篇 Silverlight实例教程 - Validation数据验证基础 ...
- Ant 简易教程
转载:http://www.cnblogs.com/jingmoxukong/p/4433945.html Ant 简易教程 Apache Ant,是一个将软件编译.测试.部署等步骤联系在一起加以自动 ...
- Intellj IDEA 简易教程
Intellj IDEA 简易教程 目录 JDK 安装测试 IDEA 安装测试 调试 单元测试 重构 Git Android 其他 参考资料 Java开发IDE(Integrated Developm ...
- Zabbix实战-简易教程系列
一.基础篇(安装和接入) Zabbix实战-简易教程--总流程 Zabbix实战-简易教程--整体架构图 Zabbix实战-简易教程--DB安装和表分区 Zabbix实战-简易教程--Server端 ...
随机推荐
- silky微服务简介
代理主机 silky微服务定义了三种类型的代理主机,开发者可以根据需要选择合适的silky代理主机托管微服务应用.代理主机定义了一个Startup模块,该模块给出了使用该种类型主机所必须依赖的模块. ...
- Terracotta 2.7.2 Admin Console Guide
http://www.terracotta.org/confluence/display/docs27/Admin+Console+Guide#AdminConsoleGuide-Roots
- windows的自动登录和隐藏用户
Launch Regedit. #r -> regedit 1. Navigate to: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Cu ...
- Nginx配置websocket的安全协议wss
//nginx配置wss访问方式 map $http_upgrade $connection_upgrade { default upgrade; '' close; } upstream webso ...
- Spring 学习笔记(3)Spring MVC
一.什么是 MVC MVC 实际上就是一种设计模式 Model-View-Controller Model 模型其实就是数据,Dao,Bean 等等 View 视图就是所看到的东西,网页,JSP,展示 ...
- java小白困惑的那些事
刚接触java时,有些技术盲区,查了很多资料也得不到答案,面试时也得遮遮掩掩,这里就列举一些,当年踩过的那些坑 1.http -> https一个网站或接口,从http改到https是否需要额外 ...
- C# 如何在编译时将 dll 复制到 bin\Release 目录下
下面假设 Project 名为 Gamma4RTD,需要调用的 dll 文件为 rtddll.dll.IDE 是 Visual Studio 2015 打开 Visual Studio 2015 -& ...
- C++面试题(四)——智能指针的原理和实现
C++面试题(一).(二)和(三)都搞定的话,恭喜你来到这里,这基本就是c++面试题的最后一波了. 1,你知道智能指针吗?智能指针的原理. 2,常用的智能指针. 3,智能指针的 ...
- vs2019 实现C#调用c++的dll两种方法
1.托管与非托管的区别 2.非托管类的实现 第一步:创建C++空项目(命名Caculate)添加一个类AddOperate 第二步:将C++代码编译成动态库dll 第三步:将dll拷贝到c#项目输入目 ...
- WPF原理剖析——路由事件
一.路由事件与传统事件传统事件的触发者和处理者是紧密相连的,而路由事件则不是,路由事件允许一个元素的事件有另外的元素触发.也即就是说路由事件的拥有者和响应者之间没有显示的订阅关系.事件的拥有者只负责激 ...