Kotlin, могу ли я получить, если в функции используется аргумент по умолчанию? - PullRequest
0 голосов
/ 19 июня 2019

Я хочу знать, используется ли аргумент по умолчанию.Что-то вроде:

private fun createVideo(path: Url = DEFAULT_PATH, width: Int = 0, height: Int = 0) {
    if (path is default value) {
        // it means caller didn't set path
        return AVideo()
    else {
        return BVideo()
    }
}

Я работаю с перегрузкой функции, которая неэффективна.

Редактировать: Вот мой реальный код

  private fun createMediaItemMock(mediaType: Int,
                                    width: Int = WIDTH_2K,
                                    height: Int = HEIGHT_2K,
                                    trimmingDataCan: Boolean) = mock<PickerMediaItem> {
        on { it.mediaType } doReturn mediaType
        it.width = width
        it.height = height
        it.trimmingData = mock {
            on { can() } doReturn trimmingDataCan
        }
    }

    private fun createMediaItemMock(mediaType: Int,
                                    width: Int = WIDTH_2K,
                                    height: Int = HEIGHT_2K) = mock<PickerMediaItem> {
        on { it.mediaType } doReturn mediaType
        it.width = width
        it.height = height
    }

1 Ответ

0 голосов
/ 19 июня 2019

Вы можете просто проверить, если path.equals(DEFAULT_PATH).Кроме того, вы должны вернуть что-то в функцию, если вы return AVideo() или return BVideo()

private fun createVideo(path: Url = DEFAULT_PATH, width: Int = 0, height: Int = 0): ReturnVideoType {
    if (path is default value) {
        // it means caller didn't set path
        return AVideo()
    else {
        return BVideo()
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...