ad

通过《基于Kotlin的Android应用程序开发》_与成功更近一步_1.2 方法与Lambda 表达式

admin 93 2023-10-25

【摘要】 本书摘自《基于Kotlin的Android应用程序开发》一书中第1章,第2节,由薛岗编著。

1.2 方法与Lambda 表达式

1.2.1 方法(或函数)

通过《基于Kotlin的Android应用程序开发》_与成功更近一步_1.2 方法与Lambda 表达式

Kotlin 中的方法(或函数)可实现一个特定的功能,或完成一个特定的计算任务。方法的定 义使用关键字 fun, 并采用下列格式进行声明:

fun 方法名称(参数列表):返回值类型{

执行语句

return 返回值

}

方法定义时,参数列表中参数声明的基本格式为“参数名:参数类型”。当方法没有返回值时, 上述的“返回值类型”使用Unit, 或者省略返回值类型的说明。同时,若方法没有返回值时,方 法声明中的 return 语句需省略。当方法中的程序相对简单,仅包含计算表达式,并将计算结果返

例如:

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

上述语句定义了一个名为add 的方法。该方法包含两个输入参数: a 和 b。方法 add 可实现一 个加法操作,即 a+b, 而运算结果为该方法的返回值。方法定义中的参数可指定默认值,例如在 下列程序中, b 参数被指定了默认值10:

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

若方法中的某个输入参数指定了默认值,方法被调用时,该参数在没有指定具体值的情况下 默认值会被程序自动使用。例如,针对add方法可使用add(2)来获得12的计算结果。

方法定义中的输入参数可定义为变长参数。所谓变长参数是指参数的个数可根据运行情况而 动态确定。 Kotlin 中的一个方法只能包含一个变长参数,而且该变长参数只能位于方法定义中参 数列表的末尾。变长参数需使用关键字 vararg,例如, vararg vs: Array表示 vs是一个接收多 个整型的参数。

另外,当某一方法定义时满足了3个条件:①定义时使用了infix关键字;②方法只有一个输 入参数;③方法是类成员(或类的扩展方法),则该方法可以中缀方式使用,基本结构为类实例方 法名参数。例如,下述程序运行的结果会在输出窗口中显示“string-sub”:

infix fun String.extends(str: String):String{

return this.toString()+ str

3 }

4

fun main(args: Array){

6 val s ="string"

val ss = s extends "-sub"

8 println(ss)

9

上述程序中,第1行至第3行在String类中增加了一个方法 extends。该方法声明使用了infix 关键字,而且,该方法只有一个输入参数str。该方法的声明满足了方法中缀使用的条件,则该方 法可以中缀方式被调用。程序第7行展示了extends的中缀使用方法。

1.2.2 方法的声明与使用

一个方法的使用是通过调用方法名来实现的。在使用一个方法时,还需要指定该方法的输入 参数,例如, add(2,3)为add 函数的一种使用。此外, Kotlin 允许以下多种方法的定义方式。

● 方法可在另一个方法内被声明(即所谓本地方法)并被使用;

● 方法可在类内部声明(即成员函数)并被使用; 钋对某个特定类声明扩展方法;

● 方法可基于泛型被声明为泛型方法;

● 方法可被声明为递归方法。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:打开《Python入门与实战》_一步步学会Python_8.4.2 案例解析
下一篇:通过《基于Kotlin的Android应用程序开发》_与成功更近一步_3.1.3 定义新窗体
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×