Scala学习-01-变量与类型
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
注意:必须赋初值。因为编译器要根据初值给变量定义类型。
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-变量与类型的更多相关文章
- Scala学习笔记(1)-基本类型归纳
1.小试牛刀 使用Scala自带的REPL shell(Read Evaluate Print Loop)学习和尝试Scala语言库,创建的变量在会话期间都是有效的. Ctrl+D可退出REPL sh ...
- scala 学习笔记七 基于类型的模式匹配
1.介绍 Scala 提供了强大的模式匹配机制,应用也非常广泛. 一个模式匹配包含了一系列备选项,每个都开始于关键字 case.每个备选项都包含了一个模式及一到多个表达式.箭头符号 => 隔开了 ...
- scala学习手记19 - Option类型
看到Option类型就知道这本教材应该要说那个了. 使用过guava后,应该知道guava中的Optional类的作用是什么.算了找下原始文档好了: Optional<T> is a wa ...
- Scala学习十八——高级类型
一.本章要点 单例类型可用于方法串接和带对象参数的方法 类型投影对所有外部类的对象都包含了其他内部类的实例 类型别名给类型指定一个短小的名称 结构类型等效于”鸭子类型“ 存在类型为泛型的通配参数提供了 ...
- python学习 01 变量
1.变量不是‘盒子’. 1.1 不同的值,变量名没变, 变量地址也会变. 1.2 相同的值,不同的变量名,变量地址是相同的
- Android Testing学习01 介绍 测试测什么 测试的类型
Android Testing学习01 介绍 测试测什么 测试的类型 Android 测试 测什么 1.Activity的生命周期事件 应该测试Activity的生命周期事件处理. 如果你的Activ ...
- Programming In Scala笔记-第五章、Scala中的变量类型和操作
这一章的一些基础性的东西,主要包括Scala中的基本变量类型,以及相关的一些操作符. 一.简单类型 下表中列出Scala语言中的基本类型,以及其字节长度,其中Byte, Short, Int, Lon ...
- Scala学习笔记(2)-类型注意
Scala类型注意事项: 1.Any是绝对的根,所有的其他可实例化类型均有AnyVal和AnyRef派生. 2.所有AnyVal的类型成为值类型(所有数值类型.char.Booble和Unit) 3. ...
- scala学习手记20 - 方法返回类型推断
除了推演变量的类型,scala也会推演方法的返回类型.不过这里有一处需要注意:方法返回类型的推演依赖于方法的定义方式.如果用等号"="定义方法,scala就会推演方法返回类型:否则 ...
随机推荐
- zblog去除底部版权信息 “请勿修改或删除主题版权及作者信息”
场景:使用了免费模板,但底部带作者版权.删除版权信息的代码后访问前台弹窗:请勿修改或删除主题版权及作者信息... 1. 删除版权信息代码 使用notepad++搜索功能,搜索版权信息:如ABC,找到相 ...
- Vmware 虚拟硬盘 合并多个分割文件
有时,当我们创建虚拟机vmware里面的应用程序,我们可能会选择创建分割的虚拟磁盘中的多个文件2 GB的文件,这是为了提高复制过程,主要用于存储虚拟机文件系统不支持创建更大的文件. 如果我们需要将它转 ...
- html 获取和写入cookie的 方法
//取Cookie的值 function getCookie(cookie_name) { var allcookies = document.cookie; v ...
- 进度条插件使用demo
1.下载地址: http://down.htmleaf.com/1502/201502031710.zip 2.效果图: 3.HTML代码:其中80设置当前所占百分比,即蓝色部分比例:注意引入必须的j ...
- UVA 818 Cutting Chains 切断圆环链 (暴力dfs)
题意就是给一张无向图,去掉某些结点,然后连成一条链,问最少去掉几个结点. n很小n<=15,所以直接枚举2^15个状态就行啦. 链的条件是1.无环,2.没有度大于2的点,3.把n个散链连起来需要 ...
- [学习总结] python语言学习总结 (三)
函数闭包 定义 延伸了作用域的函数(能访问定义体之外定义的非全局变量 作用 共享变量的时候避免使用了不安全的全局变量 允许将函数与某些数据关联起来,类似于简化版面向对象编程 相同代码每次生成的闭包,其 ...
- Python正则表达式计算器流程图
- kubernetes-平台日志收集(ELK)
使用ELK Stack收集Kubernetes平台中日志与可视化 K8S系统的组件日志 K8S Cluster里面部署的应用程序日志 日志系统: ELK安装 安装jdk [root@localhost ...
- inner join 和 left join 的区别
1.left join.right join.inner join的区别 left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表 ...
- 01_2_Servlet简介
01_2_Servlet简介 1. Servlet简介 Servlet是服务器小应用程序 用来完成B/S架构下,客户端请求的响应处理 平台独立,性能优良,能以线程方式运行 Servlet API为Se ...