scala 入门
来源:互联网 发布:淘宝网店创业计划书 编辑:程序博客网 时间:2024/05/01 03:26
安装配置scala
首先scala是基于java开发环境的扩展,系统首先需要保证配置好jre和jdk。官方推荐使用java 6 以上版本, 但事实在即将发布的新版本scala 2.12版本中, 只会支持 java 8, 所以我在这里也首先安装了java 8 jdk。
scala需要安装的组件分为两部分, 我的开发环境是在mac下, 所以使用了brew的方法进行了安装, 命令分别是:
brew install scala
brew install sbt
如果系统并没有安装brew,可以去 http://brew.sh/ 进行安装, 步骤很简单。
安装完成之后, 在终端中可以分别执行 scala
和 sbt
命令。
sbt 是 Scala Build Tool
的简称在这里可以进行编译,测试和运行你所写好的scala程序。scala 终端是一个方便的脚本翻译环境,它提供了免编译直接运行的功能。
Scala程序快速入门
例:快速计算字符串长度
scala> "you have a long string".lengthres0: Int = 22
提示:sbt 命令的具体命令可以键入 help 指令查看
例: scala的基本程序
scala> val s = "Hello, world!"s: String = Hello, world!scala> println(s)Hello, world!scala> 1 + 1223res1: Int = 1224scala> s.contains("hello")res2: Boolean = falsescala> :q
定义一个字符串之后, 系统返回了资源或者资源号 在这里可以直接连续操作多次
scala> 8 + 10 * 2res0: Int = 28scala> res0 * 3res1: Int = 84scala> "test string"res2: String = test stringscala> res2.regionMatches toString codePointCount getChars replace toUpperCase codePoints indexOf replaceAll ...
在使用资源时,在.
号之后按 tab
键 可以显示当前可用的方法名。严格意义上讲,scala程序并不是一个解释型语言。但是经过特殊设计的解释器可以正确执行脚本语句,这个性能被称作评读取-评估-打印-循环 (Read-Eval-Print-Loop) 简称 REPL
scala中,关键字 val
用来定义一个常量, 而变量则用 var
来定义,如果尝试更改 val
类型的值,则会报错,例如
scala> val pi = 3.1415926pi: Double = 3.1415926scala> var tmp = 4tmp: Int = 4scala> tmp = 10tmp: Int = 10scala> pi = 2<console>:8: error: reassignment to val pi = 2 ^
在以上例子中,我们已经使用了很多scala的数据类型 例如 Int
, String
, Double
。 scala中不需要指定数据类型,系统会根据值来判断。
例: 各类型转字符串
scala> 1.toString()res5: String = 1
例: 生成一个范围数组
scala> 1.to(10)res6: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10
例: 求字母交集
scala> "helloadsf".intersect("world")res8: String = lod
在scala中,数据之间的类型转换可以使用 .toInt
, .toChar
, .toString
进行操作, 具体可方法可参见scaladoc
运算符
scala中的运算符与其他语言大同小异 + - * / %
为基本运算符,& | ^ >> <<
为位运算符。 在scala中一切都是对象,所以当我们见到如下形式的表达式 1 + 2
的时候, 要明白其实这是 a.+(b)
的一个缩写。 在 1
这个对象下存在一个 +()
的方法。
注意, 在scala下不存在 ++
, --
自增自减运算符, 相关操作可以使用 +=
-=
来完成。 例如:
scala> var i = 0i: Int = 0scala> i += 1scala> println(i)1scala> i -= 2scala> println(i)-1
scala 无法实现自增自减运算符的原因是 int
类型是 Immutable
类型。
下面我们看看scala导入包和使用函数的方法
scala> import scala.math._import scala.math._scala> sqrt(2)res14: Double = 1.4142135623730951scala> pow(2, 4)res15: Double = 16.0scala> min(3, Pi)res16: Double = 3.0
scala调用函数的方法和其他语言一致, 在导入函数所在的包的时候,替换了java的 *
号通配符而使用了下划线 _
。 我们将在以后章节更多的测试scala包导入的语法
例:找字符串中不重复的字符
scala> res17.distinctres18: String = helo
在scala中是很经常把一个语句当做一个函数方式来使用,这也就和C++ 与 Java的如下语法相同
s[i]; // c++ styles.charAt(i); // java style
在我们scala中,我们可以直接下面的代码来完成相同功能
"nihao"(2)
其实这个格式只是如下格式的缩写:
"nihao".apply(2)
apply
方法有时可以被理解成scala的构造函数。例如:
Array(1, 4, 9, 16) // 构建数组BigInt("1234324234") //构建bigint类型
在具体构建一个对象时候,可以参考官方文档的apply方法说明
scala 官方开发文档 http://www.scala-lang.org/api/current
第一章完
- Scala入门
- scala 入门
- scala入门
- scala 入门
- scala入门
- Scala入门
- scala入门
- Scala入门
- Scala入门
- scala入门
- scala入门
- Scala详解---------快速入门Scala
- scala学习一:scala入门
- Scala详解---------快速入门Scala
- Scala入门指南
- Scala开发入门指南
- Scala入门资料
- 炼数成金Scala语言入门
- 黑马程序员 面向对象 继承 抽象
- 黑马程序员 面向对象 接口
- C++指针学习
- inheritance & class variable DEMO
- 黑马程序员 面向对象 多态 需求 object
- scala 入门
- The file “XXX” couldn’t be opened because you don’t have permission to view it.
- linux内核体验
- CSDN-markdown编辑器语法——背景色
- CodeSign error: code signing is required for product type 'Application' in SDK 'i ..
- 工作篇-电商项目需求总结上
- The model used to open the store is incompatible with the one used to create the store
- 个人交社保
- makefile