抠腚爱揉曼 Coding Iron Man

20Sep/112

来scala下Scala

Scala,所谓可伸缩可扩展,于是就蛋疼试试

首先因为scala的语句块都可以返回值,因此if else完全可以取代?:三元运算符的作用,不过写起来还是后者比较爽。那就自己扩展一把好了。

class BooleanEx(b: Boolean) {
	def ?[T](func: Boolean => T) = {
		func(b)
	}
}

class AnyEx[T](o: T) {
	def or(o1: T) = { b: Boolean =>
		if (b) {
			o
		} else {
			o1
		}
	}
}

object Helper {
	implicit def Boolean2BooleanEx(b: Boolean) = new BooleanEx(b)
	implicit def Any2AnyEx[T](o: T) = new AnyEx(o)

	def main(args: Array[String]) {
		(1 == 1) ? (true or false)
	}
}

无奈的地方是没法使用冒号作为方法名(因为是关键字),以及?属于最高优先级层,所以后面的括号省略不能……

Posted by Anson

Tagged as: Leave a comment
Comments (2) Trackbacks (0)

Leave a comment

(required)

No trackbacks yet.