找回密码
 注册帐号

扫一扫,访问微社区

mono 升级细节

2015-1-8 17:58| 发布者: 杨炎| 查看: 1386| 评论: 0|原作者: 蛮牛|来自: unity3d脚本manual

摘要: mono 升级细节在 unity 3 版本中,我们将 mono 运行从 1.2.5 升级至 2.6。在此基础之上,还有一些 javascript 和 boo 改进。除了修复所有错误并对两个版本的 mono 进行改进之外,本页还列出了一些重点内容。c# 改进c ...

mono 升级细节

在 unity 3 版本中,我们将 mono 运行从 1.2.5 升级至 2.6。在此基础之上,还有一些 javascript 和 boo 改进。除了修复所有错误并对两个版本的 mono 进行改进之外,本页还列出了一些重点内容。

c# 改进

c# 3.5 和 c# 2.0 之间的区别基本包括:

变量类型推断。如需更多信息,请点击此处。

linq

lambdas。如需更多信息,请点击此处。

javascript 改进

编译器现在加快了 4 倍。

“extends”不再用于接口,unity 脚本现有“执行 (implements)”用于该目的(如下);

新增消耗泛型类型支持,如泛型集合:

var list = new system.collections.generic.list.();

list.add("foo");

新增匿名函数/封闭支持:

list.sort(function(x:string, y:string) {

return x.compareto(y);

});

其中包含带参数类型推断和返回值的简单 lambda 表达式:

list.sort(function(x, y) x.compareto(y));

函数类型:

function foreach(items, action: function(object)) {

for (var item in items) action(item);

}

类型推断的 javascript 数组推导式:

function printarray(a: int[]) {

print("[" + string.join(", ", [i.tostring() for (i in a)]) + "]");

}

var doubles = [i*2 for (i in range(0, 3))];

var odds = [i for (i in range(0, 6)) if (i % 2 != 0)];

printarray(doubles);

printarray(odds);

新增说明和执行接口支持:

interface ifoo {

function bar();

}

class foo implements ifoo {

function bar() {

console.writeline("foo.bar");

}

}

所有函数都是隐式的虚函数,因而 “virtual” 这个关键字已被弃用,而引入 “final” 这个关键字,允许非虚拟方法定义为:

final function foo() {

}

值类型(结构)可以定义为类,从 system.valuetype 继承:

class pair extends system.valuetype {

var first: object;

var second: object;

function pair(fst, snd) {

first = fst;

second = snd;

}

override function tostring() {

return "pair(" + first + ", " + second + ")";

}

}

boo 改进

boo 升级至 0.9.4 版本。

相关阅读

文章点评
相关文章
蛮牛教育10.1大促销!全站6折扣!