第44条:避免在成员中定义扩展
fun String.isPhoneNumber(): Boolean =
length == 7 && all { it.isDigit() }fun isPhoneNumber(`$this`: String): Boolean =
`$this`.length == 7 && `$this`.all { it.isDigit() }interface PhoneBook {
fun String.isPhoneNumber(): Boolean
}
class Fizz: PhoneBook {
override fun String.isPhoneNumber(): Boolean =
length == 7 && all { it.isDigit() }
}// 不好的做法,千万不要这样做
class PhoneBookIncorrect {
// ...
fun String.isPhoneNumber() =
length == 7 && all { it.isDigit() }
}Last updated