Google Dart编程语言学习(1)--语法和基本类型

简介:

Dart编程语言是一个完全面向对象的语言,包括基础类型如int变量也都是对象。

1. 变量声明

如何定义变量

var name = 'Bob';

变量的初始值

int lineCount;
assert(lineCount == null); // Variables (even numbers) are initially null.

可以使用var,也可以直接指定类型。

final, 定义为final的变量,值不能够被更改

final name = 'Bob'; // Or: final String name = 'Bob';
name = 'Alice';     // ERROR

2. 基础类型

字符串

字符串可以使用单引号或者双引号。

var s1 = 'Single quotes work well for string literals.';
var s2 = "Double quotes work just as well.";

在字符串中,可以直接应用值, ${表达式}, 如果只是一个变量,就可以去掉{}

var s = 'string interpolation';
assert('Dart has $s, which is very handy.' ==
       'Dart has string interpolation, which is very handy.');
assert('That deserves all caps. ${s.toUpperCase()} is very handy!' ==
       'That deserves all caps. STRING INTERPOLATION is very handy!');

多行字符串,会被认为默认拼接。

var s = 'String ''concatenation'
        " works even over line breaks.";
assert(s == 'String concatenation works even over line breaks.');

如果要使用多行字符串,可以这样, 用'''

var s1 = '''
You can create
multi-line strings like this one.
''';

创建一个不考虑转义的字符串

var s = @"In a raw string, even \n isn't special.";

StringBuffer, 非常类似.net中的。

复制代码
var sb = new StringBuffer();

sb.add("Use a StringBuffer ");
sb.addAll(["for ", "efficient ", "string ", "creation "]);
sb.add("if you are ").add("building lots of strings.");

var fullString = sb.toString();
复制代码

数字

主要就2种,int 和 double, 它们都继承num类型

数字和字符串之间的转换

复制代码
// String -> int
var one = Math.parseInt("1");
assert(one == 1);

// String -> double
var onePointOne = Math.parseDouble("1.1");
assert(onePointOne == 1.1);

// int -> String
var oneAsString = 1.toString();
assert(oneAsString == "1");

// double -> String
var piAsString = 3.14159.toStringAsFixed(2);
assert(piAsString == "3.14");
复制代码

 

布尔类型

bool,不同于js, 只要不是true, 那么就都是false.

 

Lists(可以当做数组)

var list = [1,2,3]; //实例化一个list

list.add(4);       //添加一个元素4

可以使用for, for...in, foreach()来遍历一个list.

var list = [1,2,3];
for (final x in list) {
  print(x);
}

或者

var list = [1,2,3];
list.forEach((element) => print(element));

Maps(字典类型)

复制代码
var gifts = {                         // A map literal
// Keys       Values
  "first"  : "partridge",
  "second" : "turtledoves",
  "fifth"  : "golden rings"};

gifts["third"] = "apple"; //添加一个
复制代码

使用foreach遍历

var gifts = {
  "first" : "partridge",
  "second": "turtledoves",
  "fifth" : "golden rings"};
gifts.forEach((k,v) => print('$k : $v'));

getKeys()和getValues()方法

var gifts = {"first": "partridge", "second": "turtledoves"};
var values = gifts.getValues();

//Print partridge and turtledoves, but not necessarily in that order.
values.forEach((v) => print(v));




目录
相关文章
|
2月前
|
JavaScript 前端开发 定位技术
如何正确学习GEE(Google Earth Engine)?含学习资源链接
如何正确学习GEE(Google Earth Engine)?含学习资源链接
49 0
|
10月前
|
开发框架 算法 搜索推荐
涨知识|Google语法快速高效的搜索
涨知识|Google语法快速高效的搜索
137 0
DHL
|
XML 前端开发 Java
[译] Google 官方正解是否应该学习 Kotlin
这篇文章来自 Google 开发技术推广工程师 Florina Muntenescu 分享的一篇文章,在这篇文章里精选了 Google 宣布支持 Kotlin 以来,收到的最热门的几个问题,回答了是否应该学习 Kotlin、以及如何学习 Kotlin。全文分为 译文 和 译者思考 两个部分。
DHL
202 0
[译] Google 官方正解是否应该学习 Kotlin
|
机器学习/深度学习 人工智能 搜索推荐
Google提出用对比学习解决推荐系统长尾问题
Google提出用对比学习解决推荐系统长尾问题
785 0
Google提出用对比学习解决推荐系统长尾问题
|
Web App开发 存储 JavaScript
Google Earth Engine(GEE)——调试(语法和客户端)错误指南!
Google Earth Engine(GEE)——调试(语法和客户端)错误指南!
495 0
Google Earth Engine(GEE)——调试(语法和客户端)错误指南!
|
机器学习/深度学习 编解码 计算机视觉
一行预处理代码,让你的CV模型更强!Google research教你用可学习的resizer
图像预处理的一个重要操作就是resize,把不同大小的图像缩放到同一尺寸,但目前用到的resize技术仍然是老旧的,无法根据数据变换。Google Research提出一个可学习的resizer,只需在预处理部分略作修改,即可提升CV模型性能!
208 0
一行预处理代码,让你的CV模型更强!Google research教你用可学习的resizer
|
机器学习/深度学习 算法 测试技术
ICLR2020|迄今为止最大规模,Google 推出针对少样本学习的 Meta 数据集
深度学习的成功往往依赖于大量手动标注的训练数据,这种局限性,激发了对少样本学习的研究,Google 在 ICLR2020 发布的 Meta-Dataset 则针对此问题,进行了新的探索和尝试。
328 0
ICLR2020|迄今为止最大规模,Google 推出针对少样本学习的 Meta 数据集
|
UED
通过设计让学习变轻松 - Google 的 Primer 团队是如何做用户体验设计的
本文讲的是通过设计让学习变轻松 - Google 的 Primer 团队是如何做用户体验设计的,那么可想而知:尽管大量信息对我们来说触手可及,而所有的新技术都似乎在一夜之间涌出,97%的人丝毫不会为了提升自己而花时间寻求这些新知识。
1392 0

热门文章

最新文章