모노(Mono) 업그레이드 세부 사항

유니티 3에서는 모노 런타임을 1.2.5에서 2.6으로 그리고 추가로 JavaScript와 Boo 개선사항을 업그레이드 하였습니다. 두 버전의 모든 버그 해결과 개선이외에 이 페이지에서는 몇가지 하이라이트를 나열합니다.

C# 개선사항

기본적으로 C# 3.5 과 C# 2.0의 차이점은 다음을 포함합니다:

  • 변수 타입 추론. 더 많은 정보는here를 보세요.
  • Linq .
  • Lambdas. 더 많은 정보는here를 보세요.

JavaScript 개선사항

  • 네배 빠른 컴파일러;
  • 'extends'는 더 이상 인터페이스와 사용될 수 없으며 unityscript는 그 이유로 개선사항이 있습니다(아래를 보세요);
  • 일반 콜렉션과 같은 일반 타입의 소모를 위한 추가된 지원:
		var list = new System.Collections.Generic.List.<String>();
		list.Add("foo");
  • anonymous functions/closures에 대한 추가 지원:
		list.Sort(function(x:String, y:String) {
			return x.CompareTo(y);
		});
  • 파라미터와 리턴 값을 위한 타입 추론과 간략화된 람다 표현 형태 지원:
		list.Sort(function(x, y) x.CompareTo(y));
  • 함수 타입:
		function forEach(items, action: function(Object)) {
			for (var item in items) action(item);
		}
  • 타입이 추론된 javascript array 이해:
		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이며 그 결과'virtual'키워드는 더이상 사용되지 않으며 virtual함수가 아닌 함수의 정의를 위해 'final' 키워드가 소개되었습니다:
		final function foo() {
		}
  • Value types (structs)은 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버전으로 업그레이드 됨.

역링크