Google Dart编程语言学习(1)--语法和基本类型
2012-08-03 15:14 JustRun 阅读(588) 评论(0) 编辑 收藏 举报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.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名justrun(包含链接)。如您有任何疑问或者授权方面的协商,请给我留言。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述