Как я могу увидеть, что указатель на функцию, переданный функции, возвращает void?

Простейшая реализация с использованием Kotlin

fun PackageManager.isAppInstalled(packageName: String): Boolean =
        getInstalledApplications(PackageManager.GET_META_DATA)
                .firstOrNull { it.packageName == packageName } != null

И назовите это так (поиск приложения Spotify):

packageManager.isAppInstalled("com.spotify.music")
0
задан Aperson123 3 March 2019 в 23:24
поделиться

2 ответа

Как уже говорили другие ответы, это невозможно.

Глядя на то, что делается, вы должны изменить сигнатуру function, чтобы она возвращала тип данных со значением часового. Например, function может вернуть void*, и вы можете проверить, что это не NULL.

Таким образом, параметры для threadStart станут (void* (*function)(void*), void *arg). Это соответствует общему шаблону проектирования, используемому в библиотеках, подобных pthread_create, который в своем случае имеет параметры (void *(*start_routine) (void *), void *arg).

0
ответ дан Winfield Chen 3 March 2019 в 23:24
поделиться

Вы не можете.

Поскольку function объявлено как void (*function)(void*), оно всегда возвращает void, так что вам не нужно.

0
ответ дан immibis 3 March 2019 в 23:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: