Scala学习:类型推断及函数式编程

Scala学习:类型推断及函数式编程,第1张

一、类型推断(无需显式指定函数类型)
val msg = "Hello World!"
//等价于val msg:String = "Hello World!"
//scala编译器会自动帮我们推断出变量的类型
  • val定义变量表示变量不可被重新赋值,类似于java中final变量
  • var定义变量可以被重新赋值
msg = "Hello ge Der"
//会报错

1、定义函数

def max(x:Int,y:Int):Int = { if (x > y) x else y}
//函数参数需要显式指定参数类型,scala编译器不会帮我们做推断
//scala中的结尾;可有可无
:Int表示返回的结果类型,可以省略
def max(x:Int,y:Int) = { if (x > y) x else y}
//但是如果函数是递归的(函数里会调用到自己),就不能省略结果类型,上述函数没有调用到自己
def max(x:Int,y:Int) = if (x > y) x else y
//如果函数中只有一条语句,花括号也可以省略

2、编写脚本文件

var i = 0
while ( i < args.length){
	if (i != 0){
		print(" ")
	}
	print(args(i))
	i += 1
}
println()
  • 命令行参数可以通过args数组获取,取数组的值不必类似于Java的args[i], 用圆括号args(i)即可获取
  • while或if语句的boolean表达式,必须用圆括号括起来
  • 指定scala脚本使用scala 名称.scala即可
二、函数式编程

上述脚本文件中的whilexunhuan,实际上是以指令式的风格编程,也是类似于Java/C++等语言通用的风格,依次给出指令,通过循环来遍历,scala允许使用指令式的编程风格,但更倾向于使用函数式

args.foreach(arg => println(arg))
//等价于上面的scala脚本,对args执行foreach()方法,括号内左边是参数,右边是函数体

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/723401.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-26
下一篇 2022-04-26

发表评论

登录后才能评论

评论列表(0条)

保存