主类
class MainActivity : AppCompatActivity() {
lateinit var tv_va: TextView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
tv_va = findViewById(R.id.tv_va)
tv_va.setonClickListener {
}
}
// 1.可变参数
fun foo(vararg para: String) {//打印可变参数 传多个参数 直接调用即可
for (i in para.indices) println("${para[i]}")
println("${para.contentToString()}")
}
//2.传函数
//arg01,arg02是实参,arg1,arg2是形参,是要传人的函数 ->Int 返回Int类型,如果没有返回值写成->Unit
private fun getResult(
arg01: String,
arg02: String,
methods: (arg1: String, arg2: String) -> Int
) {
System.out.println("----->msg:执行方法之前") //1
var ret = methods(arg01, arg02);
System.out.println("----->msg:执行方法之后" + ret)//3
}
fun logFun(msg: String, msg2: String): Int {
Log.d("----->msg:${msg},${msg2}", "----")
return 1;
}
//函数的调用 getResult("哦这是什么:","这是Android啊",::logFun)
//3.传接口
private fun initData(handlerBack: HandlerBack) {
handlerBack.callBack("你好!")
}
//调用和实现
// initData(object : HandlerBack {
// override fun callBack(info: String) {
// println("$info")
// }
// })
//4.默认参数定义
private fun initDatas(name: String = "张三", handlerBack: HandlerBack) {//有单个默认参数,可以不传参数 多个参数要传值
handlerBack.callBack(name)
}
//调用和实现
// initDatas("11", object : HandlerBack {
// override fun callBack(info: String) {
// println("$info")
// }
// })
}
接口定义
interface HandlerBack { //接口定义
fun callBack(info: String)
}



