一、安装运行
双击安装包,默认安装
win + r
进入到安装目录
cd ..
执行 scala 回车,启动 scala
退出 :q
二、变量
val s = "123"
val i = 123
不需明确指出变量的类型
三、IDE
安装配置JDK
四、DEMO
// object 定义程序入口
object HelloWorld {
// 程序的入口
// def 定义方法
// main 方法名称
// args 参数名称
// Array[String] 参数类型
// Unit 返回值
// = {} 方法体
def main(args: Array[String]): Unit = {
// print 输出
print("hello world") // 不写分号间隔;除非同一行需要写多个语句
}
}
方法定义
def 方法名(参数:类型[泛型]):返回值={
表达式1;表达式2
表达式3
表达式4
}
注意:一行有多个表达式,则加分号。Unit相当于java中的void。
object DivTest {
def main(args: Array[String]): Unit = {
// 变量定义输出
val result = div(10,2)
print(result)
// 变量的定义
val r = "a" ;
// r = "b" ; // 不可修改
var s = "a" ;
s = "b" ; // 可修改
// 数组
var arr = Array(1,2,3,4,5);
// 数组遍历,+1
var arr1 = for(a <- arr) yield a+1
// 输出
for(b <- arr1) print(b)
// 输出连续的数字
for(c <- 1 to 10 ) println(c)
for(c <- 1.to(10)) println(c)
Some(10/6) // 表示有值
None // 表示无值
if (r != 0) Some(10/9) else None
}
// 定义方法名称,参数及参数类型,返回值类型
def div(a : Int , b : Int) : Int = {
a / b // 默认方法的最后一行的计算结果作为返回值
}
}
package com.scala.studay.day.one
object StringTest {
def main(args: Array[String]): Unit = {
// 1.字符串拼接
val str = "scala"
val str1 = "hello "+str
// s 表示 StringContext 上下文标识
val str2 = s"hello ${str}"
println(str2)
val str3 = s"hello $str"
println(str3)
// 2.GSON格式
val gson = "{\"name\":\"hello\",\"age\":\"10\"}"
val gsonScala = """{"name":"hello","age":"10"}"""
println(gsonScala)
// 3.定义函数
var fn = (x:Int) => println(x)
fn(10)
}
}
// 声明类的构造方法
// case 序列化
case class Person (var name:String,var age:Int){
}
//继承父类并使用父类的参数
class Student(name:String,age:Int,var no:String) extends Person(name,age) {
}
object MainObject {
def main(args: Array[String]): Unit = {
var per = new Person("hello",10)
println(per.name)
println(per.age)
var student = new Student("li",10,"01")
println(student.age)
println(student.no)
}
}
trait AbstractPrint {
var name : String
def printT = {println(name)}
def toToSomeThing
}
class AbstractPrintImpl extends AbstractPrint {
def toToSomeThing: Unit = {
println("To do SomeThing ")
}
var name: String = "Test"
}
object MainObject {
def main(args: Array[String]): Unit = {
val abstra = new AbstractPrintImpl()
abstra.printT
abstra.toToSomeThing
}
}
object FunctionTest {
// 定义方法
def method (n:String) = {println(n)}
def main(args: Array[String]): Unit = {
/**
* 将数组中的值按照奇偶数分组输出
*/
// 初始化数组
var array = Array(1,2,3,4,5,6,7,8).toList
// 定义函数:若为奇数,返回TRUE
def functionOddNumber = (n:Int) => { n%2 != 0}
// 输出结果
println(array.partition(functionOddNumber))
}
}
object ListTest {
def main(args: Array[String]): Unit = {
// Array 读取快
// List 修改快
var list = List(1,2,3,4,5)
// 获取数组中的元素
var secondListElement = list(1)
println(secondListElement)
// 遍历数组
for(x <- list) println(x)
// 取出首位元素
var firstElement = list.head
println(firstElement)
// 取出尾部元素
var tailElement = list.tail
println(tailElement)
// 取出第X个位置前的元素
var subList = list.take(1);
for(y <- subList) println("=="+y)
// 在头部加元素
println(list.:+(6))
// 在尾部加元素
println(list.+:(7))
// 在中间加元素
var newList = list.take(3) ::: List(0) ::: list.takeRight(list.length - 3 )
println(newList)
// 删除元素:删除下标之前的元素
println(list.drop(3));
}
}
import scala.collection.mutable.ArrayBuffer
object CollectionTest {
def main(args: Array[String]): Unit = {
// 可变数组
var arrayBuffer = ArrayBuffer(1,2,3,4,5,6)
arrayBuffer += 7 ;
for(x <- arrayBuffer) println(x)
// Set
var set = Set(1,2,3,4,1,2,3,4)
println(set)
// Map
var map = Map(1->"a",2->"b",3->"c")
println(map)
// Tuple
var tuple = (1,"2",3.00,4,"5",6.00)
println(tuple._1)
}
}
单词统计
import scala.io.Source
object WordCountSimpleTest {
def main(args: Array[String]): Unit = {
// 读取文件内容,转为List
val list = Source.fromFile("d:/study/scala/word.txt").getLines().toList
// list转map,单词作为key,1作为value
.map { x=> (x,1) }
// 按照 key 进行分组
.groupBy { x=> x._1 }
// 对 tuple 中的 第2个位置的元素进行相加操作,得出该单词的统计数量
.mapValues{ list => list.map { tuple => tuple._2 }.reduce {(x,y) => x+y} }
// 输出
.foreach(x=>println(x))
}
}
分享到:
相关推荐
Scala SDK,全称为Scala Software Development Kit,是用于开发Scala应用程序的核心工具集。Scala是一种多范式的编程语言,融合了面向对象和函数式编程的特点,它运行在Java虚拟机(JVM)上,能够充分利用Java生态...
Scala是一种强大的静态类型编程语言,它融合了面向对象和函数式编程的概念,旨在提供一种可扩展的、高效的编程环境。Scala这个名字是“Scalable Language”的缩写,它旨在克服Java的一些局限性,同时保留其平台兼容...
Scala3,也被称为Scala 3或Dotty,是Scala编程语言的一个重大更新,旨在提高其简洁性、可读性和类型安全性。Scala3的发布标志着该语言的进一步成熟,它引入了一系列改进,旨在解决早期版本中的一些痛点,同时保持对...
Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的概念。这个"scala2.12.1Windows镜像包"是为Windows操作系统设计的Scala编程环境的安装包,版本号为2.12.1。Scala 2.12.x系列是其重要的一个稳定...
Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性。这个"scala学习源代码"的压缩包文件很可能包含了用于教学或自我学习Scala编程的基础示例。让我们深入了解一下Scala语言的关键概念和特性。 ...
Scala 是一种多范式的编程语言,它融合了面向对象和函数式编程的特性。下面将详细解释题目中涉及的Scala知识点: 1. **var、val 和 def 的区别**: - `var` 定义可变变量,可以多次赋值。 - `val` 定义不可变变量...
Scala是一种强大的多范式编程语言,它结合了面向对象和函数式编程的特性。MyBatis则是一款流行的Java持久层框架,主要用于简化数据库操作。在本项目中,"scala + mybatis 数据库查询",我们将探讨如何将Scala与...
Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的概念。这个"scala-2.12.10.zip"文件是Scala编程语言的特定版本——2.12.10,专为Windows操作系统设计的安装包。Scala 2.12.x系列是该语言的一个...
Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性,使得它在处理并发和大数据分析方面表现出色。"Scala实战高清讲解"这本书是学习Scala的宝贵资源,尤其对于那些希望深入理解并提升Scala技能的...
Scala是一种强大的多范式编程语言,它融合了面向对象编程和函数式编程的概念,被广泛应用于大数据处理和分布式计算领域,特别是在Apache Spark等框架中。标题提到的"scala-2.12.14.zip&scala-2.12.11.tgz"是Scala的...
Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性。这个"scala-2.13.8 解压安装版"提供了一个无需安装过程的便捷方式来使用Scala开发环境。以下是关于Scala-2.13.8版本的一些关键知识点: 1. ...
Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的概念,设计目标是提供一种静态类型系统,能够防止程序在运行时出现错误。Scala-2.12.6.tgz是一个针对该语言的最新版本安装包,用于在各种操作系统...
从上述内容来看,《Programming in Scala.pdf》不仅是一本介绍Scala编程语言的书籍,更是一本为读者提供深入了解和应用Scala语言的实用工具。书籍中的内容覆盖了从基础知识到高级特性的多个层面,确保读者能够在掌握...
Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特点,广泛应用于大数据处理、分布式计算和Web开发等领域。Spark是一个基于Scala构建的大数据处理框架,它以其高效、易用和可扩展性而受到业界的...
Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性。Scala-2.11.7是该语言的一个特定版本,适用于Java虚拟机(JVM)。这个包是官方发布的,确保了其可靠性和兼容性。 在安装Scala-2.11.7时,...
Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性,被广泛应用于大数据处理、分布式计算和Web开发等领域。Spark是基于Scala构建的大数据处理框架,其高性能和易用性使得Scala在大数据领域备受...
Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的特性,被广泛应用于大数据处理领域,特别是与Apache Spark相结合时。本课件是针对Scala学习者精心准备的资源,旨在帮助你深入理解和掌握Scala的...
在这个"windows版scala-2.11.12.zip"压缩包中,包含的是Scala 2.11.12版本的Windows兼容安装文件,这是Scala的一个稳定版本,适用于开发人员在Windows操作系统上进行Scala编程。 Scala 2.11.x系列是Scala的一个主要...
Scala是一种强大的多范式编程语言,它融合了面向对象和函数式编程的概念,为开发者提供了丰富的工具集。这个"scala-2.12.13.tgz"文件是Scala编程语言的一个版本,针对Linux操作系统提供的安装包。tgz(tar.gz)格式...
在本文中,我们将深入探讨如何使用Scala API操作HBase数据库。HBase是一个分布式、面向列的NoSQL数据库,它构建于Hadoop之上,提供实时访问大量数据的能力。Scala是一种强大的函数式编程语言,与Java虚拟机(JVM)...