現在、これを使用してリストの最初の要素を選択します。
   def Get_Read_Key =
   {
      logger.entering (TAG, "Get_Read_Key")
      val Retval = if (Read_Key_Available)
      {
         val Retval = Keystrokes.head
         Keystrokes = Keystrokes.tail
         Retval
      }
      else
      {
         calculator.ui.IKey.No_Key
      } // if
      logger.exiting (TAG, "Get_Read_Key", Retval)
          Retval
   } // Get_Read_Key
   def Read_Key_Available = Keystrokes.size > 0
しかし、それはあらゆる種類の不器用に見えます - 特に二重の「Retval」です。これを行うより良い方法はありますか?それとも、不変リストを使用するために支払う代償に過ぎないのでしょうか?
背景: ルーチンは Unit Test Mock クラスで使用されます。戻り値の型が設定されています。