Я новичок в Kotlin, и я пишу приложение Android, но я получаю следующее предупреждение компилятора, изображенное на скриншоте.
Мой вопрос об этой конкретной ошибке относится к следующим строкам:
if (months?.toInt() == 1) { monthsText = "1 Mo " }
if (months?.toInt() > 1) { monthsText = String.format("%d Mos ", months) }
Первая строка с == компилируется нормально, но> 1 дает нулевое утверждение. Я добавил скриншот ошибки и фрагмент кода. Кстати, если есть лучший способ кодирования, это может помочь в моем понимании проблемы.
Если я добавлю !! как отмечено в ошибке, она компилируется и запускается, но если переменная месяцев равна нулю, что может быть причиной сбоя приложения.
Я не очень понимаю, почему == будет отличаться от>
![enter image description here](https://i.stack.imgur.com/TwLG1.png)
В базе данных, из которой я получаю эти данные, хранится «yearsMonthsExperience» как «1205» (ГГММ).
val yearsMonths= (markerData.mMarkerUser!!["yearsMonthsExperience"] as? String)?.padStart(4, '0')
val years = yearsMonths?.take(2)?.toInt()
val months = yearsMonths?.takeLast(2)?.toInt()
var yearsText = ""
if (years != null && years == 1) { yearsText = "1 Yr " }
if (years != null && years > 1) { yearsText = String.format("%d Yrs ", years) }
var monthsText = ""
if (months?.toInt() == 1) { monthsText = "1 Mo " }
if (months?.toInt() > 1) { monthsText = String.format("%d Mos ", months) }
mInfoView.lbYearsExperience.text = String.format("%s%s Exp.", yearsText, monthsText)
Заранее спасибо за любые объяснения или помощь.