标准函数:with run apply
静态方法: 注解和顶层方法
with和run 用法相近
fun main(array: Array<String>){
val list = listOf("Apple","Banana","Orange","Pear","Grape")
// 普通用法
val builder = StringBuilder()
for (item in list){
builder.append(item).append("\n")
}
builder.append("Ate all item")
println(builder.toString())
}
上面普通用法
标准函数:with
val result = with(obj){
"value" //with 函数的返回值
}
fun main(array: Array<String>){
val list = listOf("Apple","Banana","Orange","Pear","Grape")
// // 普通用法
// val builder = StringBuilder()
// for (item in list){
// builder.append(item).append("\n")
// }
// builder.append("Ate all item")
// println(builder.toString())
val result = with(StringBuilder()){
append("start list \n")
for (item in list){
append(item).append("\n")
}
append("end list")
toString()
}
println(result)
}
结果一样
run用法:
val rresult = obj.run{
"value" //函数的返回值
}
fun main(array: Array<String>){
val list = listOf("Apple","Banana","Orange","Pear","Grape")
// // 普通用法
// val builder = StringBuilder()
// for (item in list){
// builder.append(item).append("\n")
// }
// builder.append("Ate all item")
// println(builder.toString())
// val result = with(StringBuilder()){
// append("start list \n")
// for (item in list){
// append(item).append("\n")
// }
// append("end list")
// toString()
// }
// println(result)
val result = StringBuilder().run {
append("start list\n")
for (item in list){
append(item).append("\n")
}
append("end list")
toString()
}
println(result)
}
结果一样
apply用法:
var result = obj.apply{
//无返回值
}
fun main(array: Array<String>){
val list = listOf("Apple","Banana","Orange","Pear","Grape")
// // 普通用法
// val builder = StringBuilder()
// for (item in list){
// builder.append(item).append("\n")
// }
// builder.append("Ate all item")
// println(builder.toString())
// val result = with(StringBuilder()){
// append("start list \n")
// for (item in list){
// append(item).append("\n")
// }
// append("end list")
// toString()
// }
// println(result)
// run:用法
// val result = StringBuilder().run {
// append("start list\n")
// for (item in list){
// append(item).append("\n")
// }
// append("end list")
// toString()
// }
// println(result)
//apply:用法
var result = StringBuilder().apply {
append("start list")
for (item in list){
append(item).append("\n")
}
append("end list")
}
println(result.toString())
}
上面是标准函数,
定义静态方法
使用注解:
class Util { // 单例类
fun doActivity(){
println("doActivity")
}
companion object{ //伴生类
//注解
@JvmStatic
fun doActivity2(){
println("doActivity")
}
}
}
注解 @JvmStatic只能加到单例类或者 companion object中的方法上
fun doSometHing(){
println("doSometHing")
}