kqr
08/02/2020, 7:10 AMBig Chungus
08/02/2020, 7:15 AMBig Chungus
08/02/2020, 7:16 AMBig Chungus
08/02/2020, 7:29 AMkqr
08/02/2020, 7:46 AMit(str)
throws exception wouldn't it break?Big Chungus
08/02/2020, 7:47 AMBig Chungus
08/02/2020, 7:53 AMZach Klippenstein (he/him) [MOD]
08/02/2020, 4:26 PMformatters.asSequence()
.map { runCatching { it.format(inputString) } }
.let { results ->
results.mapNotNull { it.getOrNull() }
.firstOrNull()
?: throw aggregateError(results)
}
Nir
08/02/2020, 7:45 PMNir
08/02/2020, 7:45 PMNir
08/02/2020, 7:45 PMkqr
08/03/2020, 6:35 AMval date: LocalDateTime = dateString.let {
supportedDateTimeFormats.asSequence()
.mapNotNull { formatter -> try {LocalDateTime.parse(it, formatter)} catch (e: DateTimeException) {null} }
.firstOrNull()
?: throw DateTimeException("Non compatible date time format for $it")
}
kqr
08/03/2020, 6:41 AMNir
08/03/2020, 2:03 PMit
and formatter
(a named argument) inside that lambdaNir
08/03/2020, 2:03 PMNir
08/03/2020, 2:04 PMNir
08/03/2020, 4:51 PMNir
08/03/2020, 4:51 PMNir
08/03/2020, 4:53 PMZach Klippenstein (he/him) [MOD]
08/03/2020, 5:02 PMZach Klippenstein (he/him) [MOD]
08/03/2020, 5:03 PMNir
08/03/2020, 5:07 PMZach Klippenstein (he/him) [MOD]
08/03/2020, 5:17 PMNir
08/03/2020, 6:01 PMNir
08/03/2020, 6:13 PMval date = run {
val errors = mutableListOf<Throwable>()
for (f in formatters) {
val v = f.runCatching { return@run format(inputString) }.onFailure { errors += it }
}
throw aggregateError(errors)
}
Nir
08/03/2020, 6:14 PMZach Klippenstein (he/him) [MOD]
08/03/2020, 6:24 PMNir
08/03/2020, 6:53 PMMatteo Mirk
08/26/2020, 12:50 PMkqr
08/26/2020, 1:45 PMMatteo Mirk
08/26/2020, 3:24 PMNir
08/26/2020, 3:27 PMNir
08/26/2020, 3:28 PM