Scala运行在jvm之上,可以调用Java类库和与Java框架交互,并将面向对象与面向函数结合在一起。

特点:

  1 保留了静态类型检查。安全保障高。

  2 函数式编程,更加灵活。

  3 运行于jvm之上,可以直接编译成Java字节码,可以使用现成的大量Java类库。

Scala程序可以向其他解释型语言一样通过REPL开发,但是Scalal程序会被快速编译成字节码,然后将字节码交给Jvm执行。

REPL — 交互式解释器环境。
R(read)、E(evaluate)、P(print)、L(loop)
输入值,交互式解释器会读取输入内容并对它求值,再返回结果,并重复此过程。

Scala变量声明:

scala> var res=6*3
res: Int = 18 scala> var str="HelloWorld"
str: String = HelloWorld

用val定义常量

Scala中推荐使用val,除非真的要改变这个值的时候。

scala> var res=6*3
res: Int = 18 scala> var str="HelloWorld"
str: String = HelloWorld

注意:必须赋初值。因为编译器要根据初值给变量定义类型。

scala> var res=56
res: Int = 56

scala> res="test"
<console>:12: error: type mismatch;
 found   : String("test")
 required: Int
       res="test"

自定义类型

scala> var res : String = "HelloWorld"
res: String = HelloWorld scala> res+"Scala"
res11: String = HelloWorldScala

格式和java有一定的区别。

Java: String res

Scala:  res : String

分号分隔

在Java中每一行都要用“;”分隔,Scala中只有在一行代码多条语句的情况下使用“;”

可以将多个变量放一起声明

val xmax, ymax = 100 // 将xmax֗和max设为100
var greeting, message: String = null
// greeting֗message都是字符串,被初始化为null

Scala常用类型

scala> 1.toString()
res12: String = 1 scala> 1.to(10)
res13: scala.collection.immutable.Range.Inclusive = Range 1 to 10

Scala中的int double……都是类,并且Scala并不刻意区分基本类型和引用类型

在Scala中,包装类型的转换由Scala编译器完成,并不需要程序员考虑。

Scala中的类型转换

Scala通过方法做类型转换。

scala> 99.7.toInt
res14: Int = 99 scala> "99.7".toDouble
res15: Double = 99.7

最新文章

  1. win10下安装mysql5.7.16(解压缩版)
  2. Codeforces118D Caesar&#39;s Legions(DP)
  3. WP8.1下 Cortana语音命令 VCD文件 设计
  4. php 分页查询
  5. C#窗体 流
  6. Haproxy+asp.net +RedisSessionStateProvider 完美实现负载均衡,并且session保持
  7. UVaLive 7267 Mysterious Antiques in Sackler Museum (if-else,枚举)
  8. HDU 1560 DNA sequence DFS
  9. TypeScript入门指南(JavaScript的超集)
  10. ARC和MRC 兼容的单例模式
  11. java单点登录原理与简单实现
  12. 【原创】MVC+ZTree实现权限树的功能
  13. Jenkins五 配置tomcat
  14. P3521 [POI2011]ROT-Tree Rotations
  15. P1230 智力大冲浪
  16. WPF Demo14 依赖属性
  17. iOS 源代码混淆(初步混淆)
  18. Asp.NetCore取配置信息
  19. 参数化登录QQ空间实例
  20. 如何:调试 .NET Framework 源代码

热门文章

  1. Java并发工具类CountDownLatch源码中的例子
  2. 洛谷 P1807 最长路_NOI导刊2010提高(07)
  3. idea2018.1.2 激活
  4. Python各种参数类型
  5. HDU 1847 Good Luck in CET-4 Everybody! 四级好运!(博弈)
  6. SC || Chapter 8
  7. 简单的cocos2dx笔试题
  8. cocos2dx for lua 简单的翻牌动画
  9. 使用objection来模块化开发iOS项目
  10. BZOJ-3679(数位DP)