к его значению по умолчанию).

у иметь возможность что-то сделать в этих строках (не скомпилировать):

def logScope(logger:Logger)(operation: (implicit l:Logger) => Unit) {/* code */ operation(logger) /* code */} 
def operationOne(implicit logger:Logger) {/**/}
def operationTwo(implicit logger:Logger) {/**/}

А затем используйте это так:

logScope(new ConsoleLogger){logger =>
    operationOne
    operationTwo
    }

Но самое близкое, что я пришел к рабочему решению, это:

def logScope(logger:Logger)(operation: Logger => Unit) {/* code */ operation(logger) /* code */} 
def operationOne(implicit logger:Logger) {/**/}
def operationTwo(implicit logger:Logger) {/**/}

/* other code */

logScope(new ConsoleLogger){logger =>
    implicit val l = logger
    operationOne
    operationTwo
    }

Я не думаю, что язык в настоящее время позволяет такие конструкции, но все же, какие-либо предложения или обходные пути для достижения аналогичных результатов?

незначительное обновление: ясоздал суть с немного расширенной версией вышеупомянутого кода с парой попыток симулировать этот тип литерала. На данный момент версия CheatEx является лучшей.

Ответы на вопрос(1)

Ваш ответ на вопрос