
Ivan
12.04.2018
08:51:12
Тут явно напрашивается when
when тут проблему не решит ИМХО. Там в функции для проверки успешности выполнения "SUCCEEDED" вызывается каждый раз. Вот скалячий for-comprehension тут пришелся бы кстати

Mikhail
12.04.2018
08:56:35
А еще можно лисп-стайл (::Op1, ::Op2, ::Op3).dropwhile{ succeded(it(x)).lastOrNull() ?: S_OK

Щерба
12.04.2018
09:25:11
Всем привет!
Подскажите Required:
Nothing?

Google

Щерба
12.04.2018
09:25:30
sharedPreferenses.getString("language", Locale.getDefault().getLanguage()) as Nothing?
Выкидавает исключение в java все отлично проходит

Alexey
12.04.2018
09:26:27
Зачем ты строку приводишь к Nothing?

Щерба
12.04.2018
09:27:08
А как нужно, моло знаком с котлин, но если привести к спрингу ошибка при компиляции

Egor
12.04.2018
09:28:00
а куда это суется?
sharedPreferenses.getString("language", Locale.getDefault().getLanguage()) вот это значение

Щерба
12.04.2018
09:28:16
var language = null
language = sharedPreferenses!!.getString("language", Locale.getDefault().getLanguage())

Alexey
12.04.2018
09:28:30
ясно понятно
var language: String = null
но стоит вообще избегать var

Щерба
12.04.2018
09:28:59
language: String вот так могу привести к любому типу?
а если val

Google

Albert
12.04.2018
09:29:22
Только String?

Andrew
12.04.2018
09:30:05
И lateinit есть. И !! — оператор, которого в коде быть (почти) не должно. Ты бы сначала документацию к языку почитал, семплы простенькие, а потом уже в дебри шёл.

Albert
12.04.2018
09:30:12
Но этого тоже стоит избегать)

Michael
12.04.2018
09:30:35
функция getString она же String и возвращает, зачем что-то приводить вообще

Щерба
12.04.2018
09:30:56
Ну так я и говорю

Тимур
12.04.2018
09:31:09

Alexey
12.04.2018
09:31:09

Egor
12.04.2018
09:31:13
потому что парень написал var language = null без объявления типа, поэтому тип там стал String
Да
ой

Andrew
12.04.2018
09:31:28

Egor
12.04.2018
09:31:32
не String, да, Nothing

Щерба
12.04.2018
09:32:02
Всем спасибо!

Alexey
12.04.2018
09:32:35
для null нельзя просто тип вывести и typechecker похоже в ботом тайп уходит, у нас в скалке по крайней мере при подобных ситуациях с типами так

Andrew
12.04.2018
09:33:27
Всем спасибо!
Это всё к тому, что тебе просто надо написать var language: String? = null. И таки пройти Kotlin Koans хотя бы.

Щерба
12.04.2018
09:34:02

Michael
12.04.2018
09:34:41
зачем ему там null вообще
взять и вернуть результат getString
тем более, что он туда ещё и дефолтное значение кидает на тот случай, если ничего по ключу не найдется

Andrew
12.04.2018
09:35:53
Я, конечно, могу пованговать, что человеку нужен lateinit, ибо объявление от инициализации оторвано, но без кода судить непросто.

Michael
12.04.2018
09:36:15
это андроид

Google

Andrew
12.04.2018
09:36:15
По крайней мере, sharedPreferences!! намекает именно на это.
Правильно, и префы, если они не дефолтные, достаются из контекста и обычно не в конструкторе. Отсюда и вангую :)

Щерба
12.04.2018
09:48:20
зачем ему там null вообще
var language:String? = null
val sharedPreferenses = PreferenceManager.getDefaultSharedPreferences(getApplicationContext())
when (Locale.getDefault().getLanguage()) {
"ru" -> {
language = sharedPreferenses!!.getString("language", Locale.getDefault().getLanguage())
}
"en" -> {
language = sharedPreferenses.getString("language", Locale.getDefault().getLanguage())
}
"kk" -> {
language = sharedPreferenses.getString("language", Locale.getDefault().getLanguage())
}
else -> {
language = sharedPreferenses.getString("language", "ru")
}
}

Egor
12.04.2018
09:50:14
что..

Vishnyakov
12.04.2018
09:50:24
when (Locale.getDefault().getLanguage()) {
"ru", "kk", "en" -> {
language = sharedPreferenses!!.getString("language", Locale.getDefault().getLanguage())
}
else -> {
language = sharedPreferenses.getString("language", "ru")
}
хотя всё равно хрень)

Щерба
12.04.2018
09:52:12

Egor
12.04.2018
09:53:33
language = sharedPreferenses!!.getString("language", when(Locale.getDefault().getLanguage()) {
"ru", "kk", "en" -> Locale.getDefault().getLanguage()
else -> "ru"
})
мать мою за ногу

Андрей
12.04.2018
09:54:54
зачем вообще это через sharedPreferenses делать? https://developer.android.com/guide/topics/resources/localization.html

Vishnyakov
12.04.2018
09:54:58

Egor
12.04.2018
09:55:51
Да я тоже смотрю, и глаз подозрительно часто натыкается на Locale.getDefault().getLanguage()

Vishnyakov
12.04.2018
09:58:55
вопрос - а как в префсы вообще попал локэйл не этих языков?
почему при чтении из них мы строим логику/

Щерба
12.04.2018
10:04:55
Возможно я что-то не так делаю)

Vishnyakov
12.04.2018
10:07:53
если ориентир на реалтайм локализацию

Google

Щерба
12.04.2018
10:08:56
То есть при следущем входе у меня будет язык по умолчанию

Michael
12.04.2018
10:10:16
о ужас
язык по умолчанию
как пользоваться таким приложением
вы решаете проблему, которой ни у кого нет

Vishnyakov
12.04.2018
10:10:42
Щерба Константин, [12 апр. 2018 г., 13:07:42]:
Ну вот смотри, я поставил русский язык, затем вышел из приложения, а мне надо чтобы русский язык остался
То есть при следущем входе у меня будет язык по умолчанию
два противореащих сообщения
в первом варианте - один раз записать (считывать всегда ообычным способом)
во втором - не использовать префсы для этого вовсе

Anton
12.04.2018
10:11:39
@kotlin_mobile

Vishnyakov
12.04.2018
10:12:24

Anton
12.04.2018
10:12:48
и че
тогда в джвм

Vishnyakov
12.04.2018
10:12:56

Anton
12.04.2018
10:12:57
тут котлин причем?

Щерба
12.04.2018
10:13:30

Vishnyakov
12.04.2018
10:13:36
жуть какая. джаву из котлина мы не вызываем? тут исклюительно котлиновскийсахар обсуждается???

Anton
12.04.2018
10:13:36
я мельком прочитал тут все вопросы по префам и локализации в андроиде

Egor
12.04.2018
10:14:39

Vishnyakov
12.04.2018
10:15:34

Andrew
12.04.2018
10:50:00
Вопрос с хранением локализации в префах — @android_ru, но его тут не задавали — у человека уже так сделано и менять он не хочет. Вопрос вот об этом вполне уместен:
val localeLang = Locale.getDefault().getLanguage()
val lang = if(localeLang in listOf("ru", "kk", "en")) localeLang else "ru"
val result = prefs.getString("language", lang)

Michael
12.04.2018
11:28:48
сложно смотреть безучастно на чужие бессмысленные страдания

Artem
12.04.2018
16:06:58
https://youtu.be/xG7na0kTyXk

Google

zir
12.04.2018
16:10:46

Anton
12.04.2018
16:11:14
еее мемы

You
12.04.2018
16:12:09
Jetbrains дал вам if

zir
12.04.2018
16:13:35
не очень чистый

Albert
12.04.2018
16:14:21
Ыы

Mi
12.04.2018
16:14:52

whalemare
12.04.2018
16:16:17
Новый иф гораздо лучше тернарника