Отличный учебник, но не может повторить код - PullRequest
0 голосов
/ 18 мая 2018

Новичок в разработке для мобильных устройств и думал, что я буду следовать вместе с этим учебником.Надеюсь, это простой вопрос.Если бы кто-то мог просто сказать мне, что называется -> (это указатель?) Или что приводит к тому, что код (e) -> становится светло-серого цвета после ввода, я мог бы провести дополнительное исследование моей собственной проблемы.здесь.

youtube.com / watch? v = RagA8g9A5Qc

В ссылке на видео ниже в 10:58 (пауза) вы увидите код, показывающий

uploadTask.addOnFailureListener ((e) --> { {finish(); }};

в 10:42 на видео вы видите похожий символ

    `mProfileImage.setOnClickListener((view) --> {saveUserInformation(); }};`

Может кто-нибудь подсказать, как называется -> и как я могу получить (е) ->появиться в диалоговом окне функций автозаполнения при вводе?Я пропускаю файл или класс?

Я думаю, что это могут быть настройки IDE, поскольку чуть выше тех строк кода в его видео вы видите следующую строку:

- bitmap.compress(Bitmap.CompressFormat.JPEG, 20, baos);

, но в моемIDE Я вижу слово "качество"

- bitmap.compress(Bitmap.CompressFormat.JPEG, quality 20, baos); 

появляется при вводе значения 20.Это светло-серый цвет, похожий на (e) и -> в его коде, который по некоторым причинам не будет работать в моем редакторе или коде.

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

По сути, (e) -> {...} - это лямбда, вы можете прочитать больше об этом здесь https://kotlinlang.org/docs/reference/lambdas.html,, но, в общих чертах, это блок кода, который может быть выполнен.e - это параметр, поступающий от вызывающей стороны, а -> - это просто синтаксис, обозначающий лямбду, за которой следует код, а «качество» серыми буквами, которое вы упоминаете, - это просто имя параметра в compressметод, который показывает IDE, чтобы вы могли правильно выполнять вызовы методов, не просматривая документы или источник.

РЕДАКТИРОВАТЬ: Кроме того, имейте в виду, что это должно быть -> не -->, как в Java, так и вКотлин, это может быть источником твоей проблемы с "серыми буквами".

0 голосов
/ 18 мая 2018

Предполагая, что вы используете Java 8+, оператор -> используется для лямбда-функций.

Лямбда - это анонимная функция, полезная для функций, которые вы будете использовать только один раз, или для передачив качестве аргумента. Подробнее здесь .

...