Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck – Telegram
Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck
9.51K subscribers
1.72K photos
86 videos
52 files
4.55K links
Все самое полезное для мобильного разработчика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/b60af5a4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a4adec1b17b35b6c0d8389
Download Telegram
​​Фильм Microsoft Build 2020: главные новинки IT-индустрии

Рассказ и видео о последних новинках от компании Microsoft. Суперкомпьютеры, безопасное машинное обучение, Learn TV, Fluid Framework и многое другое – будьте в курсе инноваций!

https://proglib.io/sh/RSsI59cBpz
В момент создания замыкания (когда мы определяем code) переменная language захватывается: значение в этот момент времени доступно в теле замыкания. Поэтому данная программа выводит Objc.

Замыкания могут захватывать константы и переменные из окружающего контекста, в котором оно объявлено. После захвата замыкание может ссылаться или модифицировать значения этих констант и переменных внутри своего тела, даже если область, в которой были объявлены эти константы и переменные уже больше не существует.
Kotlin избавляется от разницы между примитивами Java и их объектными аналогами на уровне языка. Внутри компилятор Kotlin создает байт-код, который использует примитивы, где это возможно, для лучшей производительности.

Соответственно, вместо примитивных типов используются объекты Byte, Short, Int (не Integer как в Java), Double, Char, Float, Long, Boolean.
Несмотря на то, что тестирование SwiftUI отличается от традиционных методов модульного тестирования и он не предоставляет доступ к дереву представлений, существуют эффективные способы тестирования представлений SwiftUI.

https://proglib.io/w/c2d46abf
MobileUI — кроссплатформенный фреймворк на основе Java, который предлагает собственную библиотеку компонентов пользовательского интерфейса и уникальную систему макетов для iOS и Android.

MobileUI позволяет вам писать полностью нативные приложения на Java и Kotlin, не затрагивая такие языки, как Objective-C или Swift.

Ознакомиться подробнее
Начать использовать
Библиотека мобильного разработчика | Android, iOS, Swift, Retrofit, Moshi, Chuck pinned «​​Фильм Microsoft Build 2020: главные новинки IT-индустрии Рассказ и видео о последних новинках от компании Microsoft. Суперкомпьютеры, безопасное машинное обучение, Learn TV, Fluid Framework и многое другое – будьте в курсе инноваций! https://proglib.io/sh/RSsI59cBpz»
Когда вызывается x.b(), печатается «B». Внутри b() осуществляется доступ к переменной a, который выполняет код при закрытии ленивого хранимого свойства, печатая «A».

Поскольку b() возвращает значение, отличное от nil, c никогда не будет вызвана. В результате программа выводит «B» и «A».

Ленивые хранимые свойства (определяются с помощью ключевого слова lazy) представляют такие свойства, значение которых устанавливается при первом обращении к ним. Использование подобных свойств позволяет более эффективно использовать память, не загромождая ее ненужными объектами, которые могут не потребоваться.
Что выведет программа на языке Kotlin?
val listA = mutableListOf(1, 2, 3)
val listB = listA.add(4) print(listB)
Anonymous Quiz
14%
true
50%
[1, 2, 3, 4]
8%
Unit
20%
Ошибка компиляции
7%
Посмотреть результаты
Как и в Java, метод add интерфейса List возвращает логическое значение (true), указывающее, была ли коллекция изменена операцией добавления — что всегда верно для списков.

Можно было предположить, что вместо этого Kotlin возвращает новый List с добавленным элементом, что ошибочно. Из-за вывода типа это не очевидно. Если вы хотите добавить элемент в список, то используйте следующую запись из пакета kotlin.collections (extension + operator): val listB = listA + 4.