Kotlin,是否可以在函数中使用默认参数?

时间:2019-06-19 07:35:59

标签: kotlin

我想知道是否使用默认参数。 像这样:

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 :(得分:0)

您可以只检查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()
    }
}