scala函数

关于函数的几个关键点
1.函数是用def定义的
2.函数会自动进行类型的推断来确定返回值,但是如果没有等于号,则推断失效
3.函数的参数可以是函数,因为在scala中函数是对象
4.如果在函数中无法推导出返回值类型,则需声明具体类型
5.函数参数的顺序可以改变,只需要使用参数名


object scala_function {
	def main(args: Array[String]): Unit = {


			println(sayHello("xiaoming",23))
			println(sayHello2("xiaoming",23))
			println("fibonacci(10)的值为: "+fibonacci(10))

			sayHello2(age=13,name="xiaohua")
			sayHello3(name="xiaohua")
			println(sum (0 to 10: _*))
			println("---")
			println(sumrecursive(0 to 10: _*))
	}

	def sayHello(name:String,age:Int)={//返回值为Unit,根据最后一行推断
			println("hello my name is "+name)
			println("hello my age is "+age)//println返回值Unit
	}

	def sayHello2(name:String,age:Int)={//返回值为Int,根据最后一行推断
			println("hello my name is "+name)
			println("hello my age is "+age)
			age
	}
	def sayHello3(name:String,age:Int=20)={//返回值为Int,根据最后一行推断,并且具有参数默认值age=20
			println("hello my name is "+name)
			println("hello my age is "+age)
			age
	}
	def sum (nums: Int*){
		var result=0;
		for(num <- nums) result+=num 
		result
	}

	def sumrecursive(nums:Int*):Int={
			if(0==nums.length) 0
			else nums.head+sumrecursive(nums.tail: _*)
	}

	//定义函数
	//F(n)=F(n-1)+F(n-2)显然这是一个线性递推数列。
	def fibonacci(n:Int):Int = {//很恐怖的裂变
			if(n<=1) 1
			else fibonacci(n-2)+fibonacci(n-1)
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值