Size: a a a

Kotlin Community

2020 September 02

ПФ

Паша Финкельштейн... in Kotlin Community
А, мпп. Это не знаю, может быть
источник

MM

Max M in Kotlin Community
почему у него здесь иде не ругается, при объявлении переменной класса?
https://youtu.be/-HdsYWeKleY?list=TLPQMDIwOTIwMjC0IB-xtRLG0g&t=222
источник

MM

Max M in Kotlin Community
и где можно рабочий пример найти
источник

MM

Max M in Kotlin Community
или как поправить
источник

с#

саша сок #KotlinGang... in Kotlin Community
собсна почему должно ругаться
источник

I

Igor in Kotlin Community
> и где можно рабочий пример найти

В @android_ru или @javastart
источник

MM

Max M in Kotlin Community
саша сок #KotlinGang
собсна почему должно ругаться
у меня ругалось, попробую еще раз
источник

MM

Max M in Kotlin Community
попробовать еще раз вдохновил, спс
источник

CL

Constantine Linnick in Kotlin Community
Constantine Linnick
Поцоны и поцонессы посоветуйте, мигрируем на котлин 14 и словили такую штуку, на которую 13-й не ругался. Ну и по виду если флоу смотреть то вполне норм должно быть. Стоит заводить ишу аль нет?

import kotlin.random.Random

fun main(args: Array<String>) {
   var enumVar: SomeEnum? = null
   val result = if (Random.nextBoolean()) {
       "result"
   } else {
       enumVar = try {
           SomeEnum.valueOf("X")
       } catch (e: Exception) {
           throw RuntimeException()
       }
       enumVar!!.name // !!! HERE NOW it should be null-asserted
   }
   print(enumVar)
   print(result)
}

enum class SomeEnum {
   FOO, BAR
}
Бамп
источник

AM

Andrew Mikhaylov in Kotlin Community
Constantine Linnick
Поцоны и поцонессы посоветуйте, мигрируем на котлин 14 и словили такую штуку, на которую 13-й не ругался. Ну и по виду если флоу смотреть то вполне норм должно быть. Стоит заводить ишу аль нет?

import kotlin.random.Random

fun main(args: Array<String>) {
   var enumVar: SomeEnum? = null
   val result = if (Random.nextBoolean()) {
       "result"
   } else {
       enumVar = try {
           SomeEnum.valueOf("X")
       } catch (e: Exception) {
           throw RuntimeException()
       }
       enumVar!!.name // !!! HERE NOW it should be null-asserted
   }
   print(enumVar)
   print(result)
}

enum class SomeEnum {
   FOO, BAR
}
Как по мне, стоит. Я не вижу, что могло бы поменять переменную -- её никто не захватывает.
источник

QH

Quantum Harmonizer in Kotlin Community
Constantine Linnick
Поцоны и поцонессы посоветуйте, мигрируем на котлин 14 и словили такую штуку, на которую 13-й не ругался. Ну и по виду если флоу смотреть то вполне норм должно быть. Стоит заводить ишу аль нет?

import kotlin.random.Random

fun main(args: Array<String>) {
   var enumVar: SomeEnum? = null
   val result = if (Random.nextBoolean()) {
       "result"
   } else {
       enumVar = try {
           SomeEnum.valueOf("X")
       } catch (e: Exception) {
           throw RuntimeException()
       }
       enumVar!!.name // !!! HERE NOW it should be null-asserted
   }
   print(enumVar)
   print(result)
}

enum class SomeEnum {
   FOO, BAR
}
если такой же ишшуи нет и проблема воспроизводится на последнем деве, то очень стоит
источник

CL

Constantine Linnick in Kotlin Community
Окей, значит это не я дурак, так и сделаю.
источник

V

Vladimir in Kotlin Community
может кто-то сталкивался с проблемой переопределения ленивой инициализации переменных?

пример:

class C(val s:String)

abstract class A {
   open val c:C by
lazy(LazyThreadSafetyMode.NONE) { C("bla") }
}

class B: A() {
   override val c: C by
lazy(LazyThreadSafetyMode.NONE) { C("blabla") }
}


проблема: класс B через раз берет инициализатор для переменной с из родительского класса. К слову у самого не получалось это воспроизвести, но есть отчеты от пользователей, которые говорят о такой проблеме
источник

CL

Constantine Linnick in Kotlin Community
чую что-то с тредами связано
источник

VP

Vladimir Petrakovich in Kotlin Community
Vladimir
может кто-то сталкивался с проблемой переопределения ленивой инициализации переменных?

пример:

class C(val s:String)

abstract class A {
   open val c:C by
lazy(LazyThreadSafetyMode.NONE) { C("bla") }
}

class B: A() {
   override val c: C by
lazy(LazyThreadSafetyMode.NONE) { C("blabla") }
}


проблема: класс B через раз берет инициализатор для переменной с из родительского класса. К слову у самого не получалось это воспроизвести, но есть отчеты от пользователей, которые говорят о такой проблеме
Если проблема в компиляторе, то оно вряд ли воспроизводилось бы через раз, а если с ним всё ок, то такой ситуации вообще не должно быть. Может, происходит что-то другое?
источник

V

Vladimir in Kotlin Community
Vladimir Petrakovich
Если проблема в компиляторе, то оно вряд ли воспроизводилось бы через раз, а если с ним всё ок, то такой ситуации вообще не должно быть. Может, происходит что-то другое?
здесь можно еще конечно на android погрешить, потому, что в моем случае в C передается идентификатор view. В родительском классе передается View.NO_ID, а в дочернем R.id.view_id. Но в R айдишники заранее проинициилазарованы, поэтому грешу lazy
источник

BP

Bogdan Panchenko in Kotlin Community
Vladimir
здесь можно еще конечно на android погрешить, потому, что в моем случае в C передается идентификатор view. В родительском классе передается View.NO_ID, а в дочернем R.id.view_id. Но в R айдишники заранее проинициилазарованы, поэтому грешу lazy
Не стоит, если вам не удалось воспроизвести.
источник

V

Vladimir in Kotlin Community
Bogdan Panchenko
Не стоит, если вам не удалось воспроизвести.
ну да, вроде логично)
источник

BP

Bogdan Panchenko in Kotlin Community
Vladimir
может кто-то сталкивался с проблемой переопределения ленивой инициализации переменных?

пример:

class C(val s:String)

abstract class A {
   open val c:C by
lazy(LazyThreadSafetyMode.NONE) { C("bla") }
}

class B: A() {
   override val c: C by
lazy(LazyThreadSafetyMode.NONE) { C("blabla") }
}


проблема: класс B через раз берет инициализатор для переменной с из родительского класса. К слову у самого не получалось это воспроизвести, но есть отчеты от пользователей, которые говорят о такой проблеме
А Thread Safety зачем отключаете ? Вот возможно в нем и будет артефакт
источник

V

Vladimir in Kotlin Community
Bogdan Panchenko
А Thread Safety зачем отключаете ? Вот возможно в нем и будет артефакт
за тем, чтобы инитилось быстррее, потому что только из main дергаю переменную, зачем мне Thread save?
источник