0

我的问题不是真正的技术性问题,因此没有明确的对错。对于扩展函数,我有一个包,其中包含每个类型的文件:Context.kt 包含 Context 的所有扩展函数,Uri.kt 包含 Uri 的所有扩展函数,依此类推。

在重构我的项目时,我遇到了这两个函数:

fun Context.getImageSize(uri: Uri): Size? = try {
    val bitmapOptions = BitmapFactory.Options()
    bitmapOptions.inJustDecodeBounds = true

    val inputStream = contentResolver.openInputStream(uri)
    BitmapFactory.decodeStream(inputStream, null, bitmapOptions)
    Size(bitmapOptions.outWidth, bitmapOptions.outHeight)
} catch (e: ErrnoException) {
    null
}
fun Uri.getImageSize(context: Context): Size? = try {
    val bitmapOptions = BitmapFactory.Options()
    bitmapOptions.inJustDecodeBounds = true

    val inputStream = context.contentResolver.openInputStream(this)
    BitmapFactory.decodeStream(inputStream, null, bitmapOptions)
    Size(bitmapOptions.outWidth, bitmapOptions.outHeight)
} catch (e: ErrnoException) {
    null
}

完全相同的功能,扩展了不同的类型。如果一个函数依赖于多个变量,是否有任何约定,要扩展哪种类型?

4

0 回答 0