Упомянутая ниже страница DatabaseIsLocked больше не доступна. Страница File Locking And Concurrency описывает изменения, связанные с захватом файла, представленным в v3, и может быть полезна для будущих читателей. https://www.sqlite.org/lockingv3.html
страница SQLite wiki DatabaseIsLocked предлагает хорошее объяснение этого сообщения об ошибке. Это указывает, частично, что источник конкуренции является внутренним (к процессу, испускающему ошибку).
то, Что не объясняет эта страница, - то, как SQLite решает, что что-то в Вашем процессе содержит блокировку и что условия могли привести к положительной лжи.
Метод mappingToString
использовался для изменения способа преобразования каждой пары ключ / значение в строку, которая затем использовалась методом toString
.
Я думаю, что это плохо. Во-первых, он добавляет изменчивость в неизменяемую структуру данных. Если у вас есть особые требования к печати, вам, вероятно, лучше передать их в другой класс.
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
Вы также можете объединить Iterator.map ()
с mkString ()
, например, для создания запроса -string из карты [String, String]
:
val queryString = updatedMap.map(pair => pair._1+"="+pair._2).mkString("?","&","")