Scala创建新的控制结构

创造新的控制结构——问号表达式 “? :”

Scala的英文意思是“可伸展的”。Scala之所以叫这个名,就是取意这个语言是“可伸展的语言”。他的可伸展性表现在很多方面。今天主要总结一下他在创造新的控制结构方面的能力。

语言内置的控制结构有:for,if...else,while等,在Scala里,你完全可以写出自己的控制结构,让它感觉像是语言本身就支持一样。先把示例抛出来——Scala里没有Java、C++里的问号表达式 ? : ,下面我们自己如何来给Scala里引入这个控制结构,代码如下:

object work {
 implicit class Condition(p: Boolean) {
  def ?[A] (first: A): Selection[A] = new Selection(p, first)  
 }

 class Selection[A](p: Boolean, first: A) {
  def | (second: A): A = p match {
   case true => first
   case _ => second
  }
 }
}


测试一下:

println( (1 > 0) ? "good" | "bad")
// > good


看看 (1 > 0) ? "good" | "ba

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值