@android_ru

Страница 933 из 3205
Todor
04.02.2017
21:38:46
да, я Build я уж понял но тут все равно беда @korotovskii



Dmitrii
04.02.2017
21:39:06
Я в котлине нихуя не секу )

Todor
04.02.2017
21:40:21
таже джава ведь)

Google
Ivan
04.02.2017
21:41:17
так написано же

тип не тот

Андрей
04.02.2017
21:42:35
а зачем через фигурные скобки добавлять? через круглые нужно

Quantum Harmonizer
04.02.2017
21:43:49
^ фигурные — это тело лямбды, они нужны были бы если бы тело интерцептора писалось прямо на месте

Todor
04.02.2017
21:43:55
@kaytert так а как решить же?

Quantum Harmonizer
04.02.2017
21:44:29
Todor
04.02.2017
21:45:12
@Harmonizr спасибо, получилось автокомплит поставил фигурные скобки и все

@Harmonizr а как глянуть чем является лямбда и что она отдает в котлине? чет не могу понять какой хоткей или как

Андрей
04.02.2017
21:45:54
автокомплит предлагает на выбор несколько вариантов. ты сам выбрал не тот

Quantum Harmonizer
04.02.2017
21:46:45
@Harmonizr а как глянуть чем является лямбда и что она отдает в котлине? чет не могу понять какой хоткей или как
лямбда — это реализация интерфейса, ctrl+клиу по методу покажет, реализацию какого интерфейса он принимает

а вообще, вот :) OkHttpClient.Builder() .addInterceptor(HttpLoggingInterceptor() .apply { level = HttpLoggingInterceptor.Level.BODY })

Todor
04.02.2017
21:51:28
@Harmonizr а то, что в жаве и котлине по нажатию ctrl(cmd)+p в методе, он показывает входящие параметры

Google
Quantum Harmonizer
04.02.2017
21:53:26
Иногда мучился, не мог вернуть эту подсказку)

Ivan
04.02.2017
21:54:25
Иногда мучился, не мог вернуть эту подсказку)
я курсором тыкал пока не появлялась или псхиовал и в метод залазил)

Todor
04.02.2017
21:55:38
@Harmonizr та и в джаве, когда хоть с лямбдой хоть без если я, допустим onClick() реализую, то начинаю писать new View.OnCl..() дальше студия сама все дописывает и я понимаю с каким обьектом работаю дальше внутри метода onClick() как с этой лямбдой в котлине работать?)

Todor
04.02.2017
21:56:09
@Harmonizr @kaytert хоткеи прекрасная вещь, парни :)

@kaytert это, разве дело в аннотациях, то, что я описал?

Ivan
04.02.2017
21:57:26
вот



Quantum Harmonizer
04.02.2017
21:57:55
угу
Причём здесь вообще?

Ivan
04.02.2017
21:58:27
Причём здесь вообще?
@Harmonizr та и в джаве, когда хоть с лямбдой хоть без если я, допустим onClick() реализую, то начинаю писать new View.OnCl..() дальше студия сама все дописывает и я понимаю с каким обьектом работаю дальше внутри метода onClick() как с этой лямбдой в котлине работать?)

Quantum Harmonizer
04.02.2017
21:58:45
И где тут аннотации?

Ivan
04.02.2017
21:59:08
Quantum Harmonizer
04.02.2017
21:59:29
Так это ты IntDef заскринил. А мы тут про SAM convertions / лямбды / анонимные классы.

Google
Ivan
04.02.2017
22:00:27
котлин их не понимает

поэтому не предлагает авткомлит

Quantum Harmonizer
04.02.2017
22:01:06
Мы про автокомплит после new к анонимным классам

Ivan
04.02.2017
22:01:20
третий раз

метод принимающий этот интерфейс

имеет аннотацию

поэтому и не предлагает комплит

хоть нью, хоть константа

разницы нет

Quantum Harmonizer
04.02.2017
22:03:10
Интовая константа подставляется по аннотации, потому что аннотация — единственный способ понять, какую константу метод готов принять. Лямбда передаётся без аннотаций, как реализация запрошенного интерфейса.

Андрей
04.02.2017
22:03:21
в примере кликЛисенер - это интерфейс без всяких аннотаций. в джаве идея создает аннонимный класс, и пишет шаблонный код за тебя. В лямде же только реализацию писать нужно.

Ivan
04.02.2017
22:04:11


Андрей
04.02.2017
22:04:32
Причем если входящий параметер один, то it выводится правильно. если несколько, то предлагает создать под них переменный, и тоже правильно выводит под них типы

Ivan
04.02.2017
22:04:49
естественно, нью же не напишешь в котлине)

Quantum Harmonizer
04.02.2017
22:05:21
и... что мы здесь должны увидеть кроме интерфейса OnClickListener?

Ivan
04.02.2017
22:05:41
ну а что должно подставлять тогда?

я не понял

Quantum Harmonizer
04.02.2017
22:06:51
А, синтаксис, который я не упомянул. SomeInterface { // body }

Михаил
04.02.2017
22:08:12
речь о том, что в джаве: view.setOnClickLstener(v->do());а в котлине : view.setOnClickListener(OnClickListener {do()})???

Google
Todor
04.02.2017
22:08:57
да, думаю о нем, если я тебя, Михаил, правильно понял

Quantum Harmonizer
04.02.2017
22:09:05
да, в Java после new сразу autocomplete предлагает правильный интерфейс.

Михаил
04.02.2017
22:09:30
есть такая беда

Todor
04.02.2017
22:09:35
например я понимаю что в джаве я в методе имею дело с v=view и знаю ее методы

а в котлине - хз шо в этой лямбде(

Андрей
04.02.2017
22:10:00
можно ведь и так view.setOnClickListener { do() }

Михаил
04.02.2017
22:10:21
можно ведь и так view.setOnClickListener { do() }
перепутал с конструкторами

Андрей
04.02.2017
22:10:36
а в котлине - хз шо в этой лямбде(
разве лямды котлина чем-то отличаются от лямд джавы?

(;¬_¬)
04.02.2017
22:10:37
А что тут делаешь тогда?
возможности нет, но есть желание, ну и полезную информацию впитываю, почитывая что тут обсуждают =)

Admin
ERROR: S client not available

Quantum Harmonizer
04.02.2017
22:11:08


Todor
04.02.2017
22:15:39
@Harmonizr угу, именно это имел ввиду от анонимных классов

Михаил
04.02.2017
22:17:46
нифига

Igor
04.02.2017
22:18:27
Такое работает только в сторону Java (конвертирование Kotlin лямбд в Java fun-interface)

Todor
04.02.2017
22:18:49
думаю, что я сбил вас с толку перепутав анонимные классы и лямбду, не обьяснив это нормально

Андрей
04.02.2017
22:19:21
Метод принамает на вход клик лисенер В джаве через анонимный класс нужно создать новый класс, который имплементит этот интерфейс, написать кучу шаблонного кода, где мы овверайдим метод онКлик, и в самом методе реализовать логику обработки клика В джаве через лямбду нам нужно только написать тело метода онКлик В котлине через лямбду нам нужно только написать тело метода онКлик Поэтому на реплику а в котлине - хз шо в этой лямбде вопрос оставляю прежним - чем лямды котлина принципиально отличаются от лямд джавы?

Михаил
04.02.2017
22:21:35
в этом случае ток анонимный класс написать можно?

Google
Михаил
04.02.2017
22:22:01
Лямбду тут никак не передать?

Михаил
04.02.2017
22:22:42
а надежда была

это будут фиксить?

или с этим жить придется?

Quantum Harmonizer
04.02.2017
22:23:04
Нет.

Функциональные типы же.

Андрей
04.02.2017
22:23:14
нифига
если метод создаешь на котлине, то там надо явно указывать что ты на вход лямду принимаешь. Если метод пришел с джавы (как в примере @iamtodor), то такое работает

Igor
04.02.2017
22:23:38
или с этим жить придется?
Так надо делать https://i.gyazo.com/6bb802ddff21410db03c37273e803c4b.png

Михаил
04.02.2017
22:24:08
ну в интеропе с джавой приходится писать все равно больше

чем на джаве

Quantum Harmonizer
04.02.2017
22:24:56
Почему же?

Михаил
04.02.2017
22:25:15
если лисенер, как параметр конструктора, то придется писать тип лямбды

тип интерфейса**

в джаве достаточно лямбду передать

Андрей
04.02.2017
22:25:46
кажется мы с тобой уже это обсуждали

Михаил
04.02.2017
22:25:51
да

до сих пор смирится не могу((

Quantum Harmonizer
04.02.2017
22:27:11
Igor
04.02.2017
22:27:27
А в java это будет видно вот так https://i.gyazo.com/5225e79dcf8924043d0db38d7e7efc96.png

Quantum Harmonizer
04.02.2017
22:28:20
Почему не view -> null?

Страница 933 из 3205