注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

韩国恺的博客

hanguokai.com

 
 
 

日志

 
 

初识Dart语言  

2011-10-25 00:08:25|  分类: Dart |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
注意:本文是Dart刚刚发布时写的,建议查看我写的其它最新介绍文章,本文内容依然保留在这里。

Google 10月初发布了新的编程语言 Dart。
官方网站:http://www.dartlang.org/ 
语言规范:dartLangSpec.pdf
讨论组:Google Groups讨论组 

从快速原型到正式的应用程序
Dart的可选类型特性让你能够快速原型开发,而后再修正代码使其更可维护。

无论你在哪里需要结构化代码
你可以运行同样的Dart代码在现代浏览器(Chrome, Safari 5+, Firefox 4+) 和服务器上。稍后支持更多浏览器。

熟悉而又不同
如果你已会一两种语言,那么Dart代码看起来很熟悉,你可以使用诸如类、闭包等久经考验的特性。而Dart的新特性可以使你更容易地开发和维护软件。Dart仍处于早期开发阶段。

示例代码:
1.Hello, Dart
main() {
  print('Hello, Dart!');
}

2.Fibonacci
int fib(int n) {
  if (n <= 1) return n;
  return fib(n - 1) + fib(n - 2);
}

main() {
  print('fib(20) = ${fib(20)}');
}

3.Point
class Point {
  Point(this.x, this.y);
  distanceTo(Point other) {
    var dx = x - other.x;
    var dy = y - other.y;
    return Math.sqrt(dx * dx + dy * dy);
  }
  var x, y;
}

main() {
  Point p = new Point(2, 3);
  Point q = new Point(3, 4);
  print('distance from p to q = ${p.distanceTo(q)}');
}

4.isolate communication
class Printer extends Isolate {
  main() {
    port.receive((message, replyTo) {
      if (message == null) port.close();
      else print(message);
    });
  }
}

main() {
  new Printer().spawn().then((port) {
    for (var message in ['Hello', 'from', 'other', 'isolate']) {
      port.send(message);  
    }
    port.send(null);
  });


如何执行代码
dart主要有两种执行方式:
1.在浏览器中执行。
    a)在 Dartboard  中,在线编辑、执行,尝试和演示目的。这是目前最简单的方法。
    b)使用转换工具将dart转换为javascript后在浏览器执行。
    c)使用script标签在浏览器中直接执行,<script type="application/dart"> </script>。当然浏览器要支持才行,目前还没有,估计只有Chrome将会支持。
    
2.虚拟机直接执行。dart源文件的后缀一般是 .dart ,就像其它语言一样: dart_bin yourcode.dart 。
    默认执行不启用类型检查,可以使用 --enable_type_checks 选项启用类型检查。
    目前官方还没提供个平台的二进制构建版本,需要自行获取代码构建。
    或者网上下载别人构建好的版本,具体见这里 ,Linux、Win、Mac都有(没试过不保证没问题)。


自行构建Dart项目
下载分every和独立vm两种,every非常大(有一堆其它依赖)下载很久,独立vm很小很快。而every中包括html转换工具等。

我是在Mac OS X 10.6上,基于XCode 3.2 环境构建的(官方推荐Xcode 3.2)。以下以Mac为例:
1.下载 gclient (depot_tools) 工具。因为Dart使用和Chromium类似的工具,首先需要

svn co http://src.chromium.org/svn/trunk/tools/depot_tools

并将其添加到PATH中。见这里

2.使用gclient下载源码,以独立vm为例:

gclient config http://dart.googlecode.com/svn/trunk/deps/standalone.deps 

gclient sync


3.执行build和测试,以独立vm为例,见这里

$ cd dart/runtime $ ../tools/build.py --arch=ia32

测试

$ ../tools/test.py --arch=ia32

生成的dart_bin在 xcodebuild/Debug_ia32目录下,并将其添加到PATH中以后就可以随时执行了!


相关工具
1.Dartboard :http://try.dartlang.org/ 在线编辑、执行的小工具(需翻墙)。它将在线编辑代码提交到AppEngine,然后转换为等价的JavaScript在浏览器中执行。
2.dart_bin:直接执行dart代码,就像其它语言一样,如: dart_bin yourcode.dart 。
3.Dart Editor:独立的基于Eclipse的 IDE 开发工具,各平台都支持。包括导航、大纲、代码补全的基本功能,可以编译为js在浏览器中运行。
4.dartc:将dart代码编译为javascript。如:dartc sample.dart,可以使用  –optimize 选项进行优化。
5.eclipse plugins:Eclipse插件,创建Dart应用程序,可在浏览器执行。安装方法见这里 。
6.dart.vim :Dart语言的vim语法文件。将语法文件放入syntax目录,编辑vimrc文件加入如下这行:

au BufRead,BufNewFile *.dart set filetype=dart

7.dart-mode.el:a Dart mode for emacs based upon CC mode. 


  评论这张
 
阅读(2078)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018