@kotlin_lang

Страница 650 из 982
Axrorxo'ja
25.04.2018
05:49:55
private fun testFun(list:MutableList<Any>=someMutableList){ } Привет если параметр лист нельзя дать дефолт параметр ?

Алексей
25.04.2018
05:56:59
Можно

Ну и да, в примере мутабельный лист, а не просто лист

Axrorxo'ja
25.04.2018
05:59:03
private fun testFun(list:MutableList<Any>=someMutableList){ } Привет если параметр лист нельзя дать дефолт параметр ?
так работает private fun testFun(list:MutableList<Any>?=someMutableList){ } нo у меня someMutableList eta notNullable list

Google
Алексей
25.04.2018
05:59:22
А когда он инициализируется?

Я про someMutableList

Axrorxo'ja
25.04.2018
06:01:15
Алексей
25.04.2018
06:01:59
Так это значит, что в момент, когда функция может быть вызвана, переменная может быть неинициализирована

А можно конкретней код?

В личку, например

Axrorxo'ja
25.04.2018
06:13:11
Так это значит, что в момент, когда функция может быть вызвана, переменная может быть неинициализирована
переменная может быть неинициализирована а всё понял в чем проблема ) большой спасибо

dimiii
25.04.2018
11:25:06
В InteliJ IDEA CE вообще возможно импортировать проект https://github.com/JetBrains/kotlin ? Следую инструкциям из ReadMe.md - по завершению - кастрированное окно с breadcrumb структуры проекта, но без окна Structure, файлы не открываются

Или мне с такими вопросами лучше slack поставить и стучаться в нужный канал там?

Собственно чуть лучше было при самой первой попытке при импорте подпроекта compiler - но тогда не заработала навигация по символам, я решил чего-то не хватает

Alexey
25.04.2018
11:35:32
импорт из git репы только храмает

Z
25.04.2018
12:02:13
В InteliJ IDEA CE вообще возможно импортировать проект https://github.com/JetBrains/kotlin ? Следую инструкциям из ReadMe.md - по завершению - кастрированное окно с breadcrumb структуры проекта, но без окна Structure, файлы не открываются
с подобмными вопросами лучше в канал #kontributors в Slack. Если коротко - должен работать способ описанный тут https://github.com/JetBrains/kotlin#-working-with-the-project-in-intellij-idea, перед импортом в идею рекомендую выполнить ./gradlew dist

dimiii
25.04.2018
12:14:52
Google
Саша
25.04.2018
12:46:31
Привет, ребята, может кто подсказать: приходят с сервера данные, которые храниться в дата классе, но мне бы нужно было сделать его глобальным ака object {} не хочу вручную переопределять все параметры с дата класса в такой вот object{}, как можно сделать это с учетом того, что object не может иметь конструктор?

Anton
25.04.2018
12:47:35
я ничего не понял

Саша
25.04.2018
12:48:33
синглтон?
ну да, можно и так, мне просто интерестно какие еще есть варианты ?

volatile var
если отрывают - знач не будем так делать =)

Alexey
25.04.2018
12:48:58
Quantum Harmonizer
25.04.2018
12:49:28
ну да, можно и так, мне просто интерестно какие еще есть варианты ?
не делать глобальным — это единственный вариант, других не существует

Alexey
25.04.2018
12:50:57
Зачем такое вообще может быть нужно?
Очевидно же, лень передавать везде параметр

Mikhail
25.04.2018
12:51:14
изменяемые (!) данные, не известные на момент компиляции (!) делать синглтоном

Стоить ответить на вопрос, а что будет в этом синглтоне, если нет соединения с сервером?

Quantum Harmonizer
25.04.2018
12:52:12
да и вообще, какое окружение, что это за данные

Саша
25.04.2018
13:04:03
Зачем такое вообще может быть нужно?
Делается реквест #1, получаем json #1 из 3, данные немного изменяться относительно логике. Делается реквест #2, получаем json #2 из 3 + #1, данные немного изменяться относительно логике. Делается реквест #3, получаем json #3 из 3 + #2, данные немного изменяться относительно логике. Update всех 3 (уже дата классов). Из здесь нужно выбрать правильные после обработки данные и сделать их глобал обьектом

Сложно коротко о главном вот так быстро

Саша
25.04.2018
14:55:30
Здесь ничего не сказано о том, зачем это хрангить глобально и в каком окружении это происходит.
ну я вижу это как глобальный объект потому что с ним взаимодействует много обьектов с разных точек, в разное время. Плюс те дата классы будут перезаписаны пару раз в ходе работы, поэтому нужно другое место для хранения, как-то так. а на счет окружения не понял.

Google
Саша
25.04.2018
15:06:56
Окружение = фреймворк, вот это всё.
android sdk, пишу нативную библиотеку для андроида

Quantum Harmonizer
25.04.2018
15:07:25
android sdk, пишу нативную библиотеку для андроида
При пересоздании приложения этот синглтон сбросится в изначальное состояние.

Саша
25.04.2018
15:08:59
При пересоздании приложения этот синглтон сбросится в изначальное состояние.
так и нужно, там при каждом входе в аппку должны быть конфиги с уникальными id

Quantum Harmonizer
25.04.2018
15:09:43
какя-то очень нестандартная и ограниченная история, мне пока не понять

Саша
25.04.2018
15:14:17
какя-то очень нестандартная и ограниченная история, мне пока не понять
¯\_(ツ)_/¯ нестандратный проект с аморальными условиями, блэкджэком и плюшками

dimiii
25.04.2018
15:22:50
¯\_(ツ)_/¯ нестандратный проект с аморальными условиями, блэкджэком и плюшками
Описанное крякает как https://speakerdeck.com/kkagurazaka/cqrs-architecture-on-android

Соответственно, кажется https://github.com/Gridstone/RxStore сойдет в качестве ... хз как описать то, с чего начался тред

Саша
25.04.2018
15:37:26
dimiii, гляну обязательно, спасибо

Sviat
25.04.2018
15:41:14
Привет всем, подскажие годные источники знаний по корутинам ( кроме доки :) ) с примерами и всяким таким

Sviat
25.04.2018
15:42:12
https://www.youtube.com/watch?v=b4mBmi1QNF0

?

Андрей
25.04.2018
15:42:40
он

Sviat
25.04.2018
15:50:28
Спасибо

dimiii
25.04.2018
16:15:57
Привет всем, подскажие годные источники знаний по корутинам ( кроме доки :) ) с примерами и всяким таким
Предлагаю портировать http://blog.paralleluniverse.co/2013/02/27/spaceships/ на корутины. Сам хочу, чтобы получить живой опыт, да руки не доходят

Artem
26.04.2018
06:52:26
Здравствуйте. Я пытаюсь разобраться в kotlin js (в js плохо разбирают). Написал модуль my_module , а в модуле функцию myFunction, функцию Пометил анотацией @JsName. Все скомпилировал и теперь могу вызвать метод написанный на котлине через чистый js: my_module.myFunction(). Потом я попробовал использовать kotlin front end plugin который делает для меня магию с webpack и собирает весь код в один файл (превращает в нечитаемый вид) и я не могу теперь из обычного js вызвать мой Котлин метод my_module.myFunction() :( Подскажите пожалуйста как я из js могу достучаться до своего модуля используя front end plugin ( с webpack ) ?

Danil
26.04.2018
07:47:20
Добрый день, куда лучше пихать private const val для "магических чисел"? Выносить вне класса, или же внурь companion object засунуть?

Konstantin
26.04.2018
07:48:21
Добрый день, куда лучше пихать private const val для "магических чисел"? Выносить вне класса, или же внурь companion object засунуть?
Зависит от контекста. Константы для конкретно этого класса в companion. Какие-то общие вещи можно в top level

Алексей
26.04.2018
07:50:13
Кстати, а может кто-нибудь объяснить смысл companion object?

Google
Quantum Harmonizer
26.04.2018
07:51:16
Кстати, а может кто-нибудь объяснить смысл companion object?
Слишком широкий вопрос. Как объяснять смысл классов или выражений.

Андрей
26.04.2018
07:53:20
Кстати, а может кто-нибудь объяснить смысл companion object?
а его нет. Просто оставили чтоб те кто привык писать на java не расстраивался что статик методов нет

Ivan
26.04.2018
07:54:10
Кстати, а может кто-нибудь объяснить смысл companion object?
http://qaru.site/questions/265552/kotlin-difference-between-object-and-companion-object-in-a-class

Admin
ERROR: S client not available

Алексей
26.04.2018
07:54:16
Quantum Harmonizer
26.04.2018
07:54:30
а его нет. Просто оставили чтоб те кто привык писать на java не расстраивался что статик методов нет
так-то и в стдлибе есть компанионы, хотя писали её люди, знающие и любящие котлин большн всех

Андрей
26.04.2018
07:55:05
так-то и в стдлибе есть компанионы, хотя писали её люди, знающие и любящие котлин большн всех
ну можно же писать те же константы и общие методы просто в отдельных файлах, получается чище

Quantum Harmonizer
26.04.2018
07:55:10
Андрей
26.04.2018
07:55:53
ну может только для приватных констант

Алексей
26.04.2018
07:55:56
нет, выражение
Можно на примере?

Quantum Harmonizer
26.04.2018
07:55:59
ну можно же писать те же константы и общие методы просто в отдельных файлах, получается чище
у компаниона есть интересные применения. Например, фабрики там очень хороши

Quantum Harmonizer
26.04.2018
07:57:54
Можно на примере?
любая конструкция, у которой есть значение: a +b, foo(), ::bar, SomeObject, x ?: y, when (a) { 1 -> x; else -> y } и так далее

вот зачем нужны выражения?)

Alexey
26.04.2018
07:58:40
хм, ну фабрики да.
extension функции для типов

Алексей
26.04.2018
07:58:49
Чтобы объясняться с компьютером

Андрей
26.04.2018
07:59:07
extension функции для типов
экстеншн и отдельно написать можно

Alexey
26.04.2018
07:59:28
Андрей
26.04.2018
08:00:26
Чтобы вызвать Int.someFun?
прям просто в файле fun Int.someFun() {} не?

зачем тут companion?

Google
Stepan
26.04.2018
08:00:45
Есть отличный тред: https://discuss.kotlinlang.org/t/what-is-the-advantage-of-companion-object-vs-static-keyword/4034

Alexey
26.04.2018
08:01:11
зачем тут companion?
Функцию можно повесить только на компаньон типа

Quantum Harmonizer
26.04.2018
08:01:14
прям просто в файле fun Int.someFun() {} не?
это экстеншен для интов, а нужен для типа

0.someFun() vs. Int.someFun()

Алексей
26.04.2018
08:04:25
Класс - это совокупность объектов, реализующих некоторый контракт. Контракт в данном случае интерфейс либо само определение класса. Зачем нужны классы? Ради инкапсуляции работы с данными. Чтобы не вручную перебирать, а чтобы передать ответственность в работе с данными объекту, который знает, что делать

Андрей
26.04.2018
08:04:26
0.someFun() vs. Int.someFun()
ну да окей, будет fun Int.Companion.someFun() {}

Алексей
26.04.2018
08:05:22
Насчет выражений - это действительно всего лишь способ донести компилятору, а потом и jvm то, что мы хотим

Quantum Harmonizer
26.04.2018
08:07:01
Насчет выражений - это действительно всего лишь способ донести компилятору, а потом и jvm то, что мы хотим
Нет, это штука вообще другого уровня. Вот a = b в котлине не выражение, однако до компилятора нашу имею доносит.

Я спросил не потому что ищу ответ, а чтобы привести пример несостоятельного вопроса)

Алексей
26.04.2018
08:07:54
Quantum Harmonizer
26.04.2018
08:08:54
Тогда я не совсем понял, что вы имеете ввиду под выражениями
то, у чего есть значение println(a + b) // ок, там выражение peintln(a = b) // не ок, присваивание — не выражение

Алексей
26.04.2018
08:08:55
Я спросил не потому что ищу ответ, а чтобы привести пример несостоятельного вопроса)
Тогда примеры неудачные:) я просто действительно не понимаю назначения компаньонов

У a=b есть результат, но в данном контексте требуется несколько иной результат

Страница 650 из 982