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

Scala学习-01-变量与类型的更多相关文章

  1. Scala学习笔记(1)-基本类型归纳

    1.小试牛刀 使用Scala自带的REPL shell(Read Evaluate Print Loop)学习和尝试Scala语言库,创建的变量在会话期间都是有效的. Ctrl+D可退出REPL sh ...

  2. scala 学习笔记七 基于类型的模式匹配

    1.介绍 Scala 提供了强大的模式匹配机制,应用也非常广泛. 一个模式匹配包含了一系列备选项,每个都开始于关键字 case.每个备选项都包含了一个模式及一到多个表达式.箭头符号 => 隔开了 ...

  3. scala学习手记19 - Option类型

    看到Option类型就知道这本教材应该要说那个了. 使用过guava后,应该知道guava中的Optional类的作用是什么.算了找下原始文档好了: Optional<T> is a wa ...

  4. Scala学习十八——高级类型

    一.本章要点 单例类型可用于方法串接和带对象参数的方法 类型投影对所有外部类的对象都包含了其他内部类的实例 类型别名给类型指定一个短小的名称 结构类型等效于”鸭子类型“ 存在类型为泛型的通配参数提供了 ...

  5. python学习 01 变量

    1.变量不是‘盒子’. 1.1 不同的值,变量名没变,   变量地址也会变. 1.2 相同的值,不同的变量名,变量地址是相同的

  6. Android Testing学习01 介绍 测试测什么 测试的类型

    Android Testing学习01 介绍 测试测什么 测试的类型 Android 测试 测什么 1.Activity的生命周期事件 应该测试Activity的生命周期事件处理. 如果你的Activ ...

  7. Programming In Scala笔记-第五章、Scala中的变量类型和操作

    这一章的一些基础性的东西,主要包括Scala中的基本变量类型,以及相关的一些操作符. 一.简单类型 下表中列出Scala语言中的基本类型,以及其字节长度,其中Byte, Short, Int, Lon ...

  8. Scala学习笔记(2)-类型注意

    Scala类型注意事项: 1.Any是绝对的根,所有的其他可实例化类型均有AnyVal和AnyRef派生. 2.所有AnyVal的类型成为值类型(所有数值类型.char.Booble和Unit) 3. ...

  9. scala学习手记20 - 方法返回类型推断

    除了推演变量的类型,scala也会推演方法的返回类型.不过这里有一处需要注意:方法返回类型的推演依赖于方法的定义方式.如果用等号"="定义方法,scala就会推演方法返回类型:否则 ...

随机推荐

  1. 代码管理_Git中获取两个标签之间的变更代码行数

    操作步骤: 1.先进入git的服务器,定位到 repositories 目录 2.再定位到具体的项目目录(登录bitbucket查看项目属性可以看到项目的存放目录),如下图: 3.浏览项目的标签,命令 ...

  2. 使用PM2搭建在线vue.js开发环境(以守护进程方式热启动)

    项目以vue.js+layUI的作为前端开发技术栈,需要有一个在线的环境供项目成员实时查看效果,总不能每次都webpack打包发布后才能看到效果吧!刚开始就简单使用npm run dev命令热启动,但 ...

  3. Linux文件压缩命令

    一.zip命令(常用) 用zip命令压缩的文件在Windows系统下也是可以解压缩的,即此格式压缩文件两个系统通用. 文件压缩:zip  filename.zip   filename 目录压缩:zi ...

  4. userBean之设置属性

    package com.java.model; public class Student { private String name;private int age; public String ge ...

  5. 【Python图像特征的音乐序列生成】数据集制作的一些tricks

    关于数据集的制作,我决定去掉很多不必要的东西,比如和弦,于是我选择了melody部分的旋律. 有了midi文件,我现在要abc序列,所以我要通过midi2abc转换一下文件. 批处理程序效果如下: 文 ...

  6. [CV笔记]inRange对图像进行分割

    先把图像转为hsv空间,然后对图像进行inrange取到hsv范围内的图像,我这里要做的是取到图中的几个白色区域以及里面的手写数字,方法可能不是最好的,因为刚入门cv没几天,先试着用所学取到这几个区域 ...

  7. 2018.3.16 win 关闭自动更新代码

    新建一个文本文件修改后缀名为 .bat 格式 net stop wuauserv sc config wuauserv start=disabled shutdown -r -t 1

  8. 用python Image读图

    https://www.cnblogs.com/kongzhagen/p/6295925.html import os name = [] with open('/media/hdc/xing/Dee ...

  9. python_98_面向对象_学校

    class School(object):#以后都加object(基类) def __init__(self, name, addr): self.name = name self.addr = ad ...

  10. java基础——Map集合

    Map以键值对的形式存储数据,其中Map.entry,是Map的内部类,它用来描述Map中的键值对.Map是一个接口,HashMap是他的一个实现类 Map中有几个重要的方法: get(Object ...