Kotlin函数

一、构造器

1、主构造器

写在类名之后的constructor()

class User constructor(name:String){
	var username = name
}

类中的属性username可以引用构造函数中的参数name
可以在主构造器中直接声明属性

class User constructor(var name:String){
}

主构造器中的参数除了在类的属性中使用,还可以在 init 代码块中使用:

class User constructor(name:String){
	var username = name
	init {
		println("username = $name")
	}
}

init 代码块是紧跟在主构造器之后执行的,这是因为主构造器本身没有代码体,init 代码块就充当了主构造器代码体的功能。

通常情况下,主构造器中的 constructor 关键字可以省略,
有些场景, 是不可以省略的,例如:在主构造器上使用可见性修饰符或者注解

class User private constructor(var name:String){
}

2、次构造器

写在类中的constructor()

如果类中有主构造器,那么其他的次构造器都需要通过 this 关键字调用主构造器,直接调用或者间接调用

在使用次构造器创建对象时,init 代码块是先于次构造器执行的。

class User constructor(var name:String){
	constructor(name:String,id:Int):this(name){
	}
}

二、函数简化

1、函数体只有一行代码

fun add(a:Int,b:Int){
	return a + b
}

可以这样写

fun add(a:Int,b:Int)=a + b

2、函数默认值

fun hello(name:String = "world") = println("hello $name")

hello()
hello("kotlin")

3、命名参数与位置参数

fun hello(name:String = "world",age:Int) = println("hello $name age = $age")
hello(10)

默认值的参数在无默认值参数的前面,IDE会报错:参数不匹配,这时需要用命名参数,显示指定参数名称

hello(age = 10)

如果函数中参数个数很多,可以按位置顺序进行赋值,这种称为位置参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值