scala 入门(1) -- 入门初探


武者之死,在侠,在义,不在己身


参考

《Scala 编程》


Scala 解释器

直接在 cmd 中输入 scala 即可进入其解释器中进行运算

>scala
Welcome to Scala 2.12.5 (Java HotSpot(TM) 64-Bit Server VM, Java 9.0.4).
Type in expressions for evaluation. Or try :help.

scala> 1+1
res0: Int = 2

输入 1+1 输出 res0: Int = 2, 其中依次为:
- 自动产生的或用户定义的结果名称
- 冒号(:)及表达式的类型
- 等号(=)
- 表达式经过计算的结果


变量定义

变量类型
  • val, 只能进行一次永久性赋值
  • var, 可随时修改相应的值

Note:如果尝试给 val 变量再次赋值的话,解释器会报错

<console>:12: error: reassignment to val
定义形式
var variable: type = value

比如定义一个字符串

scala> val s: java.lang.String = "hello!"

其中,java.lang.String 是相应的 String 类,我们也可以使用简化名 String 来定义变量(常见的数据类型都有其简化名,比如 Int):

scala> val s: String = "hello!"

另外,scala 还具有类型推断的功能,一般情况下,我们可以不用定义数据类型

scala> val s = "hello!"
s: String = hello!

函数定义

函数的基本定义如下(以找两数的最大值为例):

下面几点是需要注意的:
- 函数的参数必须带上类型定义,因为 scala 不能对参数进行类型推断
- 函数的结果类型有些时候可以不定义,但在某些情况下(比如递归),是一定要说明定义的。建议最好都带上,方便阅读理解代码
- 如果函数只有一条语句,是可以省略大括号的
- 当没有返回值时,结果类型为 Unit
- 上面的函可以写成下面形式

scala> def max(x:Int, y:Int) = if(x>y) x else y
max: (x: Int, y: Int)Int

scala> max(5, 3)
res1: Int = 5

scala 脚本

其实,scala 跟 python 的执行时有点类似的,可以直接交互 shell 中进行,也可以在 脚本文件中执行程序

  1. 把以下代码保存在 hello.scala 文件中
println("hello,word from scala script")
  1. cmd 中执行命令
>scala hello.scala
hello,word from scala script

另外,在编译执行 scala 文件时,也可以传递参数,scala 会将他们保存在 args 数组中,可以使用 foreach 进行枚举遍历

args.foreach(arg: String => println(arg))

这里把函数字面量(function literal) arg: String => println(arg) 传入到 foreach 中,把上述代码放到 hello.scala 并执行

>scala hello.scala this is args
hello,word from scala script
this
is
args

显而易见,args 数组中的元素分别被 println 打印出来

Note:函数字面量,也即匿名函数,类似于 java 或 python 中的 lambda 函数

还有的就是,对相关元素,scala 一样具有推断类型的能力,加上当函数字面量只有一行且只有一个参数时,可以省略参数,代码可以精简为:

args.foreach(println)

最后

继续向 scala 的简明扼要进发

如有错误,请指出!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值