Tag: котлина

Является ли тип неявного свойства одинаковым с явным типом свойства?

Следующий код A – от разработчиков Kotlin-for-Android. Код B написан мной. Аналогичны ли эти два разных блока кода? Код А class DetailActivity : AppCompatActivity(), ToolbarManager { override val toolbar by lazy { find<Toolbar>(R.id.toolbar) } … } Код B class DetailActivity : AppCompatActivity(), ToolbarManager { override val toolbar: Toolbar by lazy { find<Toolbar>(R.id.toolbar) } … }

Доступ к статической функции расширения из другого класса в Котлине?

Допустим, у нас есть следующая функция расширения: class Helper { companion object { fun Int.plus(value: String) = Integer.valueOf(value).plus(this) } } Как вы можете получить доступ к функции расширения plus из класса Helper в другом классе. Есть ли способ, которым мы можем сделать что-то вроде этого, например: class OtherClass { fun someMethod() { val eight = […]

Kotlin – Почему эта функция не подходит для рекурсии хвоста?

Функция send() в следующем примере вызывает себя рекурсивно: internal inner class RouteSender( val features: List<Feature>, val exchange: GrpcUniExchange<Point, RouteSummary> ) { var result: AsyncResult<RouteSummary>? = null // Set in stub for recordRoute. fun send(numPoints: Int) { result?.let { // RPC completed or err'd before sending completed. // Sending further requests won't error, but they will […]

Настройка привязок Guice в Котлине

Я хочу настроить привязки Guice, поэтому я создал модуль на Java, который отлично работает: public class CrashLoggerModule extends AbstractModule { @Override public void configure() { bind(CrashLogger.class).to(ConcreteCrashLogger.class); } } Затем я преобразовал этот код в Kotlin: public class CrashLoggerModule : AbstractModule() { override fun configure() { bind(javaClass<CrashLogger>()).to(javaClass<ConcreteCrashLogger>()) } } К сожалению, версия Kotlin этого класса больше […]

Совместное использование функций расширения между Float и Double в Котлине

ПРИМЕЧАНИЕ. Этот вопрос касается не общих классов, а общих функций. (Я не верю, что это дубликат этого : это более конкретный вариант). В нашем проекте у нас есть несколько полезных функций для расширения Double и Float , таких как toFixed (на основе Javascript's Number.toFixed ) fun Double.toFixed(digits: Int):String = java.lang.String.format("%.${digits}f", this) fun Float.toFixed(digits: Int):String = […]

Kotlin `shl` не работает

Я пытаюсь применить shl к значению Int в Kotlin: val a = 1092455 println(a.toString()) println(toString(bits(one))) println(toString(bits(one shl 16))) println(toString(bits(one shr 16))) Это дает следующий результат: 1092455 0000000000010000 1010101101100111 0000000000000000 0000000000000000 0000000000000000 0000000000010000 Как вы можете видеть, правильное shr приводит к тому, что левые самые 16 бит ( 0000000000010000 ) сдвигаются вправо, однако shl не дает […]

Экземпляр Kotlin KClass внутри функции расширения

Мне нужно получить доступ к типу класса внутри общей функции расширения. Например, если я хочу, чтобы функция расширения возвращала коллекции членов типа, которые я распространяю, я бы сделал: fun <T> T.getMembers() = this::class.memberProperties Проблема в том, что я не могу сделать это: class и T :: class внутри функции. Есть ли способ доступа к типу […]

В kotlin функция tailroid tail возвращает 0

Я попытался использовать этот учебник по учебнику youtube . Я имею функцию следующим образом: fun fact(x:Int):Int{ tailrec fun factTail(y:Int, z:Int):Int{ return if(y == 0) { z } else { factTail(y – 1, y * z) } } return factTail(x,1) } и эта функция вызывается в oncreate как: var abc = fact(5) Log.i(TAG, "5! = $abc") […]

Kotlin Dokka – Не удается найти задачу Dokka в андроид-студии

Я новичок в Котлине и Докке; Следуя wikis и учебным пособиям, я попытался настроить мой проект для документа документации dokka со следующими строками в файлах построения градиента: В файле проекта gradle: classpath "org.jetbrains.dokka:dokka-android-gradle-plugin:0.9.15" В файле модуля gradle: apply plugin: 'org.jetbrains.dokka-android' Версия для Android версии 2.3.3 После синхронизации, перезагрузки проекта и перезагрузки студии Android я ожидал, […]

как сделать множество подмножеств постоянными в котлине

В java, имеющем класс, который определяет несколько констант, некоторые из них находятся во внутреннем классе. Их можно было бы назвать: Data.HTTP_SCHEME; Data.Constants.ResponseType.XML; Data.PayloadType.JSON Как сделать то же самое в Котлине? public class Data { public static final String HTTP_SCHEME = "http"; public static final String HTTPS_SCHEME = "https"; public static class Constants { public static […]

Давайте будем гением компьютера.