我的问题不是真正的技术性问题,因此没有明确的对错。对于扩展函数,我有一个包,其中包含每个类型的文件: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
}
完全相同的功能,扩展了不同的类型。如果一个函数依赖于多个变量,是否有任何约定,要扩展哪种类型?