object Test {
def main(args: Array[String]): Unit ={
method01
val dog =newDogmethod02(dog)println(dog.name)
method03
println(method05())`
println(method06(4))method07(10,1,2,3,4,5)}
**//1,函数的形参列表可以是多个, 如果函数没有形参,调用时 可以不带()**
def method01 ={}**//2,形参列表和返回值列表的数据类型可以是值类型和引用类型**classDog{
var name =""}//传入Dog
def method02(dog: Dog): Dog ={
dog.name ="小明"
dog
}**//3,Scala中的函数可以根据函数体最后一行代码自行推断函数返回值类型。// 那么在这种情况下,return关键字可以省略**
def method03 {println("a")123//返回Int类型}// 注意:使用return关键字时要明确返回类型
def method04 {return1//返回Unit 也就是()}**//5,Scala函数的形参,在声明参数时,直接赋初始值(默认值),// 这时调用函数时,如果没有指定实参,则会使用默认值。如果指定了实参,则实参会覆盖默认值。**
def method05(f: String ="method05")={
f
}**//7,scala 函数的形参默认是val的,因此不能在函数中进行修改.****//8,递归函数未执行之前是无法推断出来结果类型,在使用时必须有明确的返回值类型**
def method06(n: Int): Int ={if(n ==1|| n ==2){1}else{method06(n -1)+method06(n -2)}}**//9,Scala函数支持可变参数//注意事项://1,args 是集合//2,args 只能写在最后**
def method06(args: Int*){//0 到 n多个参数}**//1 到 n 多个参数**
def method07(n1: Int, args: Int*): Unit ={println("args.length:"+ args.length)for(i <- args){
i
}}}