系统学习scala--基础
scala基础
安装scala(不推荐使用最新版本,2.11.x够用了)
这里我选择2.11.12版本,在下载页面往下拉,选择scala-2.11.12.msi(windows用户),msi安装比较简单,一直点点就行。如果下载速度慢,建议用迅雷。
安装完后,配置环境变量,如图:
- 在命令行中输入scala -version验证是否安装成功。
声明值和变量
安装成功后在命令行中输入scala并回车就能打开scala的解释器。每次输入命令,解释器都会显示出结果。
正如你所看到的,解释器会给结果自动命名和显示结果类型,并且在后续操作中可以继续使用。而解释器这些操作过程也被称为“读取-求值-打印” 循环(read-eval-print-loop)即REPL,后面为了方便表示,我们就称解释器为REPL。
你还能自定义自己的名称:
scala> val ans = 8*5+2
ans:Int = 42
这里已val定义的值实际上是个常量,相当于java中的final,值不可改变。定义变量使用var。
一般情况下,推荐使用val,除非你真的需要改变它的内容。在定义的时候你还可以指定变量的类型,如:
var ans:Int = 8*5+2
说明:在scala中,变量和函数的类型总是写在变量和函数的名称后面。
常用类型
scala有七种数值类型:Byte,Char,Short,Int,Long,Float,Double和Boolean类型。scala并没有明确区分基本类型和引用类型,就都像java中的包装类,可以直接调用方法。
1.toString() // "1"
99.99.toInt() // 99
99.toChar() // 'c'
// 在scala中','逗号可以省略,括号内没有参数可以不写括号
1 toString //不建议哈
1.toString //这个就可以
// 在scala中有隐式转换,比如:String对象被隐式转换成StringOps对象,追加上百种字符串操作。
"hello".intersect("world") //返回 "lo"
// 同样地,scala还提供了RichInt,RichDouble,RichChar等,为原来的类型增加所不具备的便捷方法。
1.to(3) // 1,2,3
1.until(3) // 1,2
通配符_
在scala中,_字符是通配符,类似java的*
val a:Int=_ // a=0
val b:Double=_ // b=0.0
val c:String=_ //c=null
val d = _ // 报错
伴生对象
在scala中,类都有一个伴生对象,其方法就跟java中的静态方法一样,类名+方法名就可以直接调用。
apply方法
在scala中,我们读取字符串中的一个字符是这样的s(i)。
var s = "hello"
println(s(4)) // 'o'
而在java中是这样的:
String s = "hello";
char c = s.charAt(4) // 'o'
其实scala之所以能这样获取字符串中的字符,是因为StringOps里面的apply方法。
s(i) 相当于 s.apply(i) //apply可以直接省略。
很多类的伴生对象都实现了apply方法,所以我们可以直接 对象名() 实现apply方法。
val array:Array[Int] = Array(1,2,3) // 使用apply直接创建数组。
最后
码字不易,喜欢的点个赞呗。
系统学习scala--基础的更多相关文章
- 【Python系统学习】基础篇
这次真的是最后一次了!第三次滚Python的基础.走了太多弯路.认真一点!菜鸟! 教程 转义字符 \ 可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\ ...
- Scala的安装,入门,学习,基础
1:Scala的官方网址:http://www.scala-lang.org/ 推荐学习教程:http://www.runoob.com/scala/scala-tutorial.html Scala ...
- Scala系统学习(三):Scala基础语法
如果您熟悉Java语言语法和编程,那么学习Scala将会很容易.Scala和Java之间最大的句法差异在于行结束字符的分号(;) 是可选的. 当编写Scala程序时,它可以被定义为通过调用彼此的方法进 ...
- Scala学习(一)--Scala基础学习
Scala基础学习 摘要: 在篇主要内容:如何把Scala当做工业级的便携计算器使用,如何用Scala处理数字以及其他算术操作.在这个过程中,我们将介绍一系列重要的Scala概念和惯用法.同时你还将学 ...
- 零基础如何系统学习Java Web
零基础如何系统学习Java Web? 我来给你说一说 你要下决心,我要转行做开发,这样你才能学成. 你要会打字,我公司原来有一个程序员,打字都是两个手一指禅,身为程序员你一指禅怎么写出的代码,半个 ...
- Unity3D 装备系统学习Inventory Pro 2.1.2 基础篇
前言 前一篇 Unity3D 装备系统学习Inventory Pro 2.1.2 总结 基本泛泛的对于Inventory Pro 这个插件进行了讲解,主要是想提炼下通用装备系统结构和类体系.前两天又读 ...
- scala基础学习(一)
scala学习 scala与java的不同之处: 1.scala中任何一个操作符都是一个方法. s = 1+2; 可以写作:s=(1).+(2) 2.异常捕获采用模式匹配的方式. try { v ...
- 【Scala学习之一】 Scala基础语法
环境 虚拟机:VMware 10 Linux版本:CentOS-6.5-x86_64 客户端:Xshell4 FTP:Xftp4 jdk1.8 scala-2.10.4(依赖jdk1.8) spark ...
- SCALA基础知识学习
注:本文只说和Java不同的地方. 总结自: Scala详细教程 Scala教程 scala基础语法 Scala 与 Java 的最大区别是:Scala 语句末尾的分号 ";" 是 ...
- 如何快速学习Scala
大数据学习过程中,会学习非常多的技术,但SCALA无疑是必不可少,那我们在大数据技术的学习过程中,如何快速的认识scala,并且学习它,感谢科多大数据公司的余老师提供的详细素材,本人整理成章,希望对你 ...
随机推荐
- 解决cvc-complex-type.2.4.a: Invalid content was found starting with element
今天用myeclipse导入 一个项目出现后出现cvc-complex-type.2.4.a: Invalid content was found starting with element 'inf ...
- TensorFlow的模型保存与加载
import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' import tensorflow as tf #tensorboard --logdir=&qu ...
- Springboot整合https原来这么简单
1 简介 HTTP是不安全的,我们需要给它套上SSL,让它变成HTTPS.本文章将用实例介绍Springboot整合HTTPS. 2 密码学基础 要谈https就要谈Security,自然就要谈安全: ...
- Ubuntu 搜索文件
1.whereis 文件名 特点:快速,但是是模糊查找 例如: whereis php #会把php,php.ini,php.*所在的目录都找出来. 2.find / -name 文件名 特点:准确, ...
- JDK 14的新特性:instanceof模式匹配
JDK 14的新特性:instanceof模式匹配 JDK14在2020年的3月正式发布了.可惜的是正式特性只包含了最新的Switch表达式,而Records,patterns,text blocks ...
- SQL计算算数表达式的函数自定义(加减乘除)
一.整体思路:循环遍历表达式字符串,设置一个index从第一个字符开始检测当前数字是否可以和后面的数字进行运算,如果可以运算,将两个数挑出来运算,然后用运算的结果替换原来表达式中的这两个数和符号,计算 ...
- 在服务器本地监控服务端口命令之ss
在服务器本地监控服务端口命令之ss 当服务器的socket连接数量变得非常大时,无论是使用netstat命令还是直接cat /proc/net/tcp,执行速度都会很慢.可能你不会有 切身的感受,但当 ...
- Merge_Sort
public class Merge_Sort { public static void merge(int a[],int n){ int source; //合并之前数组的大小 int targe ...
- 开始导入第一个第三方库jieba
在做python的练习题,想看看运行结果. 谁知,有道题,不能识别jieba,原来要导入,因为是第三方库,照着书里面的导入方法,有三种,一种是用pip,在命令行里面安装,使用pip - p 可以查看p ...
- 用Eclipse开发项目,你不能不知道的快捷键
1. 编辑快捷键 编辑快捷键 介绍 psvm + Tab 生成main方法 sout + tab 生成输出语句 Ctrl+X / Ctrl + Y 删除一行 Ctrl+D 复制一行 Ctrl+/ 或 ...