Scala学习——函数
一、方法的定义和使用
1.函数的定义如下:
def sum(x:Int, y:Int) : Int = {
x+y
}
(1)以def开头定义
(2)def后面跟函数名
(3)括号中的参数列表,必须指定类型。
(4)冒号后跟函数返回值类型
(5)=后跟大括号内的函数体
2.函数/方法的定义
def 方法名 (参数名:参数类型) : 返回值类型{
大括号内为方法体
方法体内最后一行为返回值,不用return
}
3.示例1:求两个数字的和
def sum(x:Int, y:Int): Int={
x + y
}
4.求两个数字中的最大值
def max(x:Int, y:Int): Int={
if (x>y) x
else y
5.没有参数的方法,可以省略调用的括号
6.没有返回值
二、默认参数
1.计算圆的面积
def area(pai:Double=3.14,r:Double):Double={
pai*r*r
}
注意问题:
(1)参数如果不指定名字,必须按照顺序传递。
(2)如果指定了名字,可以不按照顺序传递。
(3)默认参数在不传递新的值时才生效,如果指定新的pai,将会覆盖原始的值。
三、可变参数
使用*来表示可以传递任意数量的参数。
1.定义求和函数
def sum(nums:Int*)={
var result = 0
for (num <- nums){
result += num
}
result
}
2.计算票价
(1)方法一
def price(age:Int,price:Int=120) = {
if (age <=8)
println("免票\n")
else if (age>8 & age<18)
printf("票价为:%.2f元\n",price*0.5)
else if (age>=18 & age<60)
printf("票价为:%.2f元\n",price*1.0)
else printf("票价为:%.2f元\n",price*0.5)
(2)方法二
def price(age:Int,price:Int=120) = {
if (age <=8)
price*0.0
else if (age>8 & age<18)
price*0.5
else if (age>=18 & age<60)
price*1.0
else price*0.5