Initializing Generic Variables in Scala

前端 未结 2 1040

How do I declare a generic variable in Scala without initializing it (or initializing to any value)?

def foo[T] {
   var t: T = ???? // tried _, null
   t
}
         


        
2条回答
  •  你的背包
    2021-02-20 07:47

    def foo[T] {
       var t: T = null.asInstanceOf[T]
       t
    }
    

    And, if you don't like the ceremony involved in that, you can ease it this way:

      // Import this into your scope
      case class Init()
      implicit def initToT[T](i: Init): T = {
        null.asInstanceOf[T]
      }
    
      // Then use it
      def foo[T] {
        var t: T = Init()
        t
      }
    

提交回复
热议问题