Как распечатать Карту в Scala

Упомянутая ниже страница DatabaseIsLocked больше не доступна. Страница File Locking And Concurrency описывает изменения, связанные с захватом файла, представленным в v3, и может быть полезна для будущих читателей. https://www.sqlite.org/lockingv3.html

страница SQLite wiki DatabaseIsLocked предлагает хорошее объяснение этого сообщения об ошибке. Это указывает, частично, что источник конкуренции является внутренним (к процессу, испускающему ошибку).

то, Что не объясняет эта страница, - то, как SQLite решает, что что-то в Вашем процессе содержит блокировку и что условия могли привести к положительной лжи.

5
задан Daniel C. Sobral 23 October 2009 в 13:30
поделиться

3 ответа

Метод mappingToString использовался для изменения способа преобразования каждой пары ключ / значение в строку, которая затем использовалась методом toString .

Я думаю, что это плохо. Во-первых, он добавляет изменчивость в неизменяемую структуру данных. Если у вас есть особые требования к печати, вам, вероятно, лучше передать их в другой класс.

3
ответ дан 13 December 2019 в 22:11
поделиться

mappingToString был специфическим для Map .

С новой структурой коллекций в Scala2.8, a Карта может быть повторена любым IterableLike , который расширяет TraversableLike .

Метод mkstring (уже есть в 2.7 для Iterable ) следует использовать.

См. Это сообщение в блоге «Строки» Джесси , для 2.7 mkstring () примеры:

/*
   Making use of raw strings to create a multi line string
   I add a | at the beginning of each line so that we can line up the quote nicely 
   in source code then later strip it from the string using stripMargin
*/
scala> val quote = """|I  don-t consider myself a pessimist.                                                                                                 
     |                |I think of a pessimist as someone who is waiting for it to rain.
     |                |And I feel soaked to the skin.
     | 
     |                |Leonard Cohen"""
quote: java.lang.String = 
|I don-t consider myself a pessimist. 
                      |I think of a pessimist as someone who is waiting for it to rain.
                      |And I feel soaked to the skin.

                      |Leonard Cohen

// capilize the first character of each line
scala> val capitalized = quote.lines.
     |                         map( _.trim.capitalize).mkString("\n")
capitalized: String = 
|I don-t consider myself a pessimist.
|I think of a pessimist as someone who is waiting for it to rain.
|And I feel soaked to the skin.

|Leonard Cohen

// remove the margin of each line
scala> quote.stripMargin        
res1: String = 
I don-t consider myself a pessimist. 
I think of a pessimist as someone who is waiting for it to rain.
And I feel soaked to the skin.

Leonard Cohen

// this is silly.  I reverse the order of each word but keep the words in order
scala> quote.stripMargin.         
     |       lines.               
     |       map( _.split(" ").   
     |              map(_.reverse).
     |              mkString (" ")).
     |      mkString("\n")
res16: String = 
I t-nod redisnoc flesym a .tsimissep
I kniht fo a tsimissep sa enoemos ohw si gnitiaw rof ti ot .niar
dnA I leef dekaos ot eht .niks

dranoeL nehoC
4
ответ дан 13 December 2019 в 22:11
поделиться

Вы также можете объединить Iterator.map () с mkString () , например, для создания запроса -string из карты [String, String] :

val queryString = updatedMap.map(pair => pair._1+"="+pair._2).mkString("?","&","")
3
ответ дан 13 December 2019 в 22:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: