https://kotlinlang.org logo
Docs
Join the conversationJoin Slack
Channels
100daysofcode
100daysofkotlin
100daysofkotlin-2021
advent-of-code
aem
ai
alexa
algeria
algolialibraries
amsterdam
android
android-architecture
android-databinding
android-studio
androidgithubprojects
androidthings
androidx
androidx-xprocessing
anime
anko
announcements
apollo-kotlin
appintro
arabic
argentina
arkenv
arksemdevteam
armenia
arrow
arrow-contributors
arrow-meta
ass
atlanta
atm17
atrium
austin
australia
austria
awesome-kotlin
ballast
bangladesh
barcelona
bayarea
bazel
beepiz-libraries
belgium
berlin
big-data
books
boston
brazil
brikk
budapest
build
build-tools
bulgaria
bydgoszcz
cambodia
canada
carrat
carrat-dev
carrat-feed
chicago
chile
china
chucker
cincinnati-user-group
cli
clikt
cloudfoundry
cn
cobalt
code-coverage
codeforces
codemash-precompiler
codereview
codingame
codingconventions
coimbatore
collaborations
colombia
colorado
communities
competitive-programming
competitivecoding
compiler
compose
compose-android
compose-desktop
compose-hiring
compose-ios
compose-mp
compose-ui-showcase
compose-wear
compose-web
connect-audit-events
corda
cork
coroutines
couchbase
coursera
croatia
cryptography
cscenter-course-2016
cucumber-bdd
cyprus
czech
dagger
data2viz
databinding
datascience
dckotlin
debugging
decompose
decouple
denmark
deprecated
detekt
detekt-hint
dev-core
dfw
docs-revamped
dokka
domain-driven-design
doodle
dsl
dublin
dutch
eap
eclipse
ecuador
edinburgh
education
effective-kotlin
effectivekotlin
emacs
embedded-kotlin
estatik
event21-community-content
events
exposed
failgood
fb-internal-demo
feed
firebase
flow
fluid-libraries
forkhandles
forum
fosdem
fp-in-kotlin
framework-elide
freenode
french
fritz2
fuchsia
functional
funktionale
gamedev
ge-kotlin
general-advice
georgia
geospatial
german-lang
getting-started
github-workflows-kt
glance
godot-kotlin
google-io
gradle
graphic
graphkool
graphql
graphql-kotlin
graviton-browser
greece
grpc
gsoc
gui
hackathons
hacktoberfest
hamburg
hamkrest
helios
helsinki
hexagon
hibernate
hikari-cp
hire-me
hiring
hongkong
hoplite
http4k
hungary
hyderabad
image-processing
india
indonesia
inkremental
intellij
intellij-plugins
intellij-tricks
internships
introduce-yourself
io
ios
iran
israel
istanbulcoders
italian
jackson-kotlin
jadx
japanese
jasync-sql
java-to-kotlin-refactoring
javadevelopers
javafx
javalin
javascript
jdbi
jhipster-kotlin
jobsworldwide
jpa
jshdq
juul-libraries
jvm-ir-backend-feedback
jxadapter
k2-early-adopters
kaal
kafka
kakao
kalasim
kapt
karachi
karg
karlsruhe
kash_shell
kaskade
kbuild
kdbc
kgen-doc-tools
kgraphql
kinta
klaxon
klock
kloudformation
kmdc
kmm-español
kmongo
knbt
knote
koalaql
koans
kobalt
kobweb
kodein
kodex
kohesive
koin
koin-dev
komapper
kondor-json
kong
kontent
kontributors
korau
korean
korge
korim
korio
korlibs
korte
kotest
kotest-contributors
kotless
kotlick
kotlin-asia
kotlin-beam
kotlin-by-example
kotlin-csv
kotlin-data-storage
kotlin-foundation
kotlin-fuel
kotlin-in-action
kotlin-inject
kotlin-latam
kotlin-logging
kotlin-multiplatform-contest
kotlin-mumbai
kotlin-native
kotlin-pakistan
kotlin-plugin
kotlin-pune
kotlin-roadmap
kotlin-samples
kotlin-sap
kotlin-serbia
kotlin-spark
kotlin-szeged
kotlin-website
kotlinacademy
kotlinbot
kotlinconf
kotlindl
kotlinforbeginners
kotlingforbeginners
kotlinlondon
kotlinmad
kotlinprogrammers
kotlinsu
kotlintest
kotlintest-devs
kotlintlv
kotlinultimatechallenge
kotlinx-datetime
kotlinx-files
kotlinx-html
kotrix
kotson
kovenant
kprompt
kraph
krawler
kroto-plus
ksp
ktcc
ktfmt
ktlint
ktor
ktp
kubed
kug-leads
kug-torino
kvision
kweb
lambdaworld_cadiz
lanark
language-evolution
language-proposals
latvia
leakcanary
leedskotlinusergroup
lets-have-fun
libgdx
libkgd
library-development
linkeddata
lithuania
london
losangeles
lottie
love
lychee
macedonia
machinelearningbawas
madrid
malaysia
mathematics
meetkotlin
memes
meta
metro-detroit
mexico
miami
micronaut
minnesota
minutest
mirror
mockk
moko
moldova
monsterpuzzle
montreal
moonbean
morocco
motionlayout
mpapt
mu
multiplatform
mumbai
munich
mvikotlin
mvrx
myndocs-oauth2-server
naming
navigation-architecture-component
nepal
new-mexico
new-zealand
newname
nigeria
nodejs
norway
npm-publish
nyc
oceania
ohio-kotlin-users
oldenburg
oolong
opensource
orbit-mvi
osgi
otpisani
package-search
pakistan
panamá
pattern-matching
pbandk
pdx
peru
philippines
phoenix
pinoy
pocketgitclient
polish
popkorn
portugal
practical-functional-programming
proguard
prozis-android-backup
pyhsikal
python
python-contributors
quasar
random
re
react
reaktive
realm
realworldkotlin
reductor
reduks
redux
redux-kotlin
refactoring-to-kotlin
reflect
refreshversions
reports
result
rethink
revolver
rhein-main
rocksdb
romania
room
rpi-pico
rsocket
russian
russian_feed
russian-kotlinasfirst
rx
rxjava
san-diego
science
scotland
scrcast
scrimage
script
scripting
seattle
serialization
server
sg-user-group
singapore
skia-wasm-interop-temp
skrape-it
slovak
snake
sofl-user-group
southafrica
spacemacs
spain
spanish
speaking
spek
spin
splitties
spotify-mobius
spring
spring-security
squarelibraries
stackoverflow
stacks
stayhungrystayfoolish
stdlib
stlouis
strife-discord-lib
strikt
students
stuttgart
sudan
swagger-gradle-codegen
swarm
sweden
swing
swiss-user-group
switzerland
talking-kotlin
tallinn
tampa
teamcity
tegal
tempe
tensorflow
terminal
test
testing
testtestest
texas
tgbotapi
thailand
tornadofx
touchlab-tools
training
tricity-kotlin-user-group
trójmiasto
truth
tunisia
turkey
turkiye
twitter-feed
uae
udacityindia
uk
ukrainian
uniflow
unkonf
uruguay
utah
uuid
vancouver
vankotlin
vertx
videos
vienna
vietnam
vim
vkug
vuejs
web-mpp
webassembly
webrtc
wimix_sentry
wwdc
zircon
Powered by Linen
russian
  • e

    Eugen Martynov

    02/12/2019, 12:32 PM
    и еще вопрос, котлин демон он ест ресурсы из пула грейдла
    g
    • 2
    • 1
  • c

    Czar

    02/12/2019, 2:34 PM
    В первую очередь я бы отключил кеш и проверил, что ошибка пропадает, потом можно разбираться дальше
    e
    • 2
    • 1
  • g

    ghedeon

    02/12/2019, 2:54 PM
    тоже спрошу, никогда не волновало настолько, чтобы что-то менять но все же:
    1)
    sealed class Foo {
        class Bar : Foo()
    }
    ===============
    2)
    sealed class Foo {
        object Bar : Foo()
    }
    Вы используете object? Он же по идее так и останется висеть в памяти, а первый должен уйти в GC, нет?
    a
    m
    +3
    • 6
    • 32
  • l

    lex

    02/14/2019, 4:38 AM
    что-то как по мне - звучит бредово https://youtrack.jetbrains.com/issue/KT-20781
    a
    g
    +3
    • 6
    • 16
  • t

    thevery

    02/18/2019, 8:21 PM
    https://twitter.com/JetBrainsRu/status/1097414002848776192?s=19
    g
    a
    • 3
    • 3
  • l

    lewik

    02/27/2019, 3:16 PM
    Почему нет примитивных типов?
    m
    a
    +2
    • 5
    • 26
  • e

    Eugen Martynov

    02/28/2019, 4:25 PM
    использую такой костыль
    when (...) {...} ?: Unit
    g
    g
    d
    • 4
    • 17
  • l

    lewik

    03/02/2019, 12:01 PM
    Котлиновская сериализация позволяет сериализовать-десериализовать объекты только когда точно известен класс объекта. Как бы сделать так, чтобы при десериализации мы не указывали конкретный класс, а оно бы само его определило по какому либо специальному полю (так же как и свойства свойства, тип которых интерфейс)? А потому уже when и все такое. Как я понимаю, сейчас это можно сделать передав два поля - класс и строку, и по классу найти десериализатор. Но для вложенных это не прокатит. Хотя бы для JSON @sandwwraith
    a
    i
    s
    • 4
    • 27
  • m

    miha-x64

    03/02/2019, 3:47 PM
    Отличный путь к remote code execution!
    a
    a
    • 3
    • 2
  • l

    lewik

    03/18/2019, 6:00 PM
    Вопрос команде JB. https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/hash-code.html Any.hashCode() Я могу использовать это для кроссплатформенного сравнения строк?
    i
    e
    g
    • 4
    • 13
  • l

    lewik

    03/26/2019, 7:09 PM
    https://www.npmjs.com/package/@jetbrains/kotlin-webpack-plugin Оно умеет kotlin common?
    a
    l
    • 3
    • 6
  • l

    lewik

    03/26/2019, 7:13 PM
    Обновился с 1.3.10 до 1.3.21
    Extension with name 'kotlin' does not exist. Currently registered extension names: [ext, defaultArtifacts, reporting, sourceSets, java]
    Проект построен "очень старым способом" когда один gradle-модуль - это какая то одна платформа. Я даже понять не могу чего оно хочет от меня
    b
    • 2
    • 6
  • l

    lewik

    03/28/2019, 2:52 PM
    В idea не могу выполнить Evaluate когда в коде kotlin common
    t
    • 2
    • 1
  • l

    lewik

    03/28/2019, 2:52 PM
    a
    e
    +2
    • 5
    • 10
  • l

    lewik

    03/29/2019, 7:57 AM
    Есть "корутины для чайноков"? Я никак въехать не могу. Корутины, контексты, билдеры, каналы, акторы...
    a
    t
    +4
    • 7
    • 53
  • l

    lewik

    03/29/2019, 9:52 AM
    ... где то должна быть ссылка на список всех билдеров, каналов...
    g
    • 2
    • 1
  • l

    lewik

    03/29/2019, 10:08 AM
    ... я и что такое ThreadLocal не понимаю...
    g
    • 2
    • 2
  • l

    lewik

    03/29/2019, 10:09 AM
    Так а что мне с этим контекстом то делать? @gildor @altavir
    a
    g
    • 3
    • 26
  • l

    lewik

    03/29/2019, 12:30 PM
    Блин, акторы только на jvm
    a
    • 2
    • 1
  • l

    lewik

    03/29/2019, 2:06 PM
    Как я понял сразу с многих корутиин можно спокойно слать в один канал? Fan in
    a
    • 2
    • 1
  • l

    lewik

    03/31/2019, 2:45 PM
    Есть такой фреймворк Spring Integration. Он про enterprise integration patterns с конечными точками а каналами между ними. Корутины с каналами очень на это дело похожи. Не хватает только готовых кроссплатформенных корутин на работу с http и прочим.
    g
    a
    r
    • 4
    • 23
  • a

    Alexjok

    04/02/2019, 10:31 AM
    Привет всем! Есть код:
    fun main(args: Array<String>) {
        val intList = mutableListOf(1,2,5)
        test(intList)
    }
    fun test(objectIds: MutableList<Int>?) {
        when (objectIds.isNullOrEmpty()) {
            true ->{
                println("true")
            }
    
            false -> {
                val maxObjectId = objectIds.max()!!.let {
                    objectIds.remove(it)
                    return@let it.toLong()
                }
                println(maxObjectId)
            }
        }
    }
    В блоке when метода test() происходит проверка на null и по идее когда мы попадаем в false нам известно: 1) лист не пустой 2) метод max() должен, что-то вернуть. Но IDE настойчиво требует поставить !!, почему так происходит и есть ли способ избавиться от восклицательных знаков?
    g
    • 2
    • 10
  • a

    Alexjok

    04/03/2019, 2:37 PM
    Привет всем! Подскажите кто-нибудь как прокинуть тип в Builder в коде ниже:
    class MyRequest<T>(private var url: String? = null,
            private var timeOut: Int = 1,
            private var token: String? = null,
            private var httpType: HttpType? = null,
            private var httpParamas: List<Pair<String, String>> = listOf(),
            private var returnResultAs: T? = null) {
    
       
        data class Builder(
            var url: String? = null,
            var httpType: HttpType? = null,
            var timeOut: Int = 1,
            var token: String? = null,
            var httpParamas: List<Pair<String, String>> = listOf()) {
                fun url(url: String) = apply { this.url = url }
                fun httpType(httpType: HttpType) = apply { this.httpType = httpType }
                fun timeOut(timeOut: Int) = apply { this.timeOut = timeOut }
                fun httpParamas(httpParamas: List<Pair<String, String>>) = apply { this.httpParamas = httpParamas }
    
                fun token(token: String) = apply { this.token = token }
                fun build() = MyRequest(url = url,
                    timeOut = timeOut,
                    token = token,
                    httpType = httpType,
                    httpParamas = httpParamas
                )
            }
    	}
    Может есть какие-нибудь другие способы сделать, что-то подобное.
    g
    • 2
    • 6
  • l

    lewik

    04/05/2019, 1:22 PM
    Что можно сделать с публичным методом-рашширением, определенном в классе?
    class Test{
        val map = mapOf(
        	1 to "a",
            2 to "b"
        )
        fun Int.switch() = map[1] ?: "c"
    }
    
    fun main() {
        1.switch() ///???
        /////
    }
    g
    a
    • 3
    • 66
  • l

    lewik

    04/05/2019, 2:12 PM
    Так вот зачем JB делегаты: https://pl.kotl.in/HkS1JJHYN ? 🙂
    g
    • 2
    • 2
  • l

    lewik

    04/09/2019, 9:53 AM
    А.... добавить
    fun getDelegate() : StructureIndexAware
    %)
    r
    • 2
    • 1
  • e

    Eugen Martynov

    04/12/2019, 9:56 AM
    есть ли такая проблема у кого?
    n
    • 2
    • 6
  • l

    lewik

    04/21/2019, 4:13 PM
    А кто за habr в JB отвечает?
    o
    • 2
    • 2
  • a

    adev_one

    05/30/2019, 7:03 AM
    Добрый день! Я сейчас разрабатываю кодогенерацию Swagger для kotlin-multiplatform. Под капотом использую ktor, kotlinx-serialization и kotlinx-coroutines. Одна из фич кодогенерации - обработка схемы кастомных ошибок. Сейчас это реализовано через Exceptions. Это накладывает кучу ограничений. Например, мне всегда нужно пользоваться SupervisorScope и при обработке всегда прокидывать CancellationsException. Насколко я понимаю, exceptions имеют другое значение при использовании корутин (механизм управления ресурасами?). Я попробовал использовать Result из Kotlin 1.3, но его нельзя вернуть и нельзя параметризовать типом ошибки. У каждого роута у меня свой набор ошибок. Мой вопрос в том, как правильно организовать обработку ошибок при использовании корутин (и ktor)?
    g
    a
    r
    • 4
    • 18
  • v

    ValV

    06/13/2019, 8:29 PM
    У меня для каждого веб-сервиса свой рандомный пароль, но их уже много. Запомнить нереально. Хранится в GPG-шифрованном файле. Надо это дело автоматизировать как-то
    i
    • 2
    • 4
Powered by Linen
Title
v

ValV

06/13/2019, 8:29 PM
У меня для каждого веб-сервиса свой рандомный пароль, но их уже много. Запомнить нереально. Хранится в GPG-шифрованном файле. Надо это дело автоматизировать как-то
i

irus

06/13/2019, 8:32 PM
https://www.vaultproject.io/
https://www.keepassx.org/
Не понимаю задачу, поэтому vault для кода/сервисов. keepassx для десктопа/телефона/пользователя
v

ValV

06/13/2019, 8:58 PM
Сяп за подсказку. Я этих инструментов раньше не знал
View count: 2