返回介绍

Mono 升级细节

发布于 2021-06-19 18:03:25 字数 2013 浏览 809 评论 0 收藏 0

在 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.<String>();
		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 版本。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文