扩展方法是指不改变类的源码的情况下为类增加自定义的方法
fun String.times(times: Int): String {
var builder = StringBuilder()
for (i in 0 until times) {
// 这里的this只得调用者本身
builder.append(this)
}
return builder.toString()
}
var String.name:String
set(v){}
get() = "123"
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
testValVar()
}
fun testValVar() {
// test即为上面提到的调用者
Log.d("thz","test".times(20))
var str = "tewt"
Log.d("thz",str.name)
}
}
打印结果为
.myapplication D/thz: testtesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttesttest
.myapplication D/thz: 123