Use lazy for SemVersion.toString

This commit is contained in:
Him188 2020-09-20 13:56:12 +08:00
parent ef4d259f60
commit 7a533d4667

View File

@ -188,23 +188,22 @@ public data class SemVersion internal constructor(
}
@Transient
private var toString: String? = null // For cache.
override fun toString(): String {
return toString ?: kotlin.run {
buildString {
mainVersion.joinTo(this, ".")
identifier?.let { identifier ->
append('-')
append(identifier)
}
metadata?.let { metadata ->
append('+')
append(metadata)
}
}.also { toString = it }
private val toString: String by lazy(LazyThreadSafetyMode.NONE) {
buildString {
mainVersion.joinTo(this, ".")
identifier?.let { identifier ->
append('-')
append(identifier)
}
metadata?.let { metadata ->
append('+')
append(metadata)
}
}
}
override fun toString(): String = toString
/**
* [SemVersion] 转为 Kotlin data class 风格的 [String]
*/