Scala学习(一)

本文是Scala学习系列的第一部分,主要介绍了Scala的概述和特点,包括其作为Spark的基础,以及与Java、JVM的关系。接着,通过HelloWorld程序引入,详细讲解了Scala中的输出方式,如使用"+"连接、printf格式化输出和$引用值。此外,还探讨了变量的定义,特别是val常量的使用,并概述了Scala的数据类型体系,包括Unit、Null和Nothing等特殊类型。
摘要由CSDN通过智能技术生成

1.1 scala概述和特点

概述:
Scala起源于2001年
Scala是Scalable Language的简写,是一门多范式语言
Spark使用Scala编写,为了更好的学习Spark,需要掌握Scala编程语言
Spark催生了Scala语言的兴起
特点:
简洁高效
同时支持面向对象和函数式编程
源于Java,同时把函数式编程思想融入Scala
Scala语言以JVM为运行环境

1.2 Scala、Java、JVM的关系

Scala源代码会被编程为Java的字节码文件(.class文件)
字节码文件运行于JVM

1.3第一个程序HelloWorld

maven pom.xml

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.kkb.scala.demo</groupId> 
<artifactId>ScalaDemo02</artifactId> 
<version>1.0-SNAPSHOT</version> 
<dependencies> 
<!-- 添加scala的依赖 --> 
  <dependency> 
    <groupId>org.scala-lang</groupId> 
    <artifactId>scala-library</artifactId> 
    <version>2.11.8</version> 
  </dependency> 
</dependencies> 
<build>
 <finalName>WordCount</finalName>
 <plugins> 
   <plugin> 
   <groupId>net.alchim31.maven</groupId> 
   <artifactId>scala-maven-plugin</artifactId> 
   <version>3.2.2</version> 
   <executions>
    <execution>
     <goals>
      <goal>compile</goal> 
      <goal>testCompile</goal> 
     </goals> 
    </execution> 
   </executions> 
  </plugin> 
  <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>3.0.0</version> 
    <configuration>
     <archive>
      <manifest>
       <mainClass>WordCount</mainClass> 
       </manifest> </archive> 
       <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
    </configuration> 
    <executions>
     <execution> 
     <id>make-assembly</id> 
     <phase>package</phase> 
     <goals>
      <goal>single</goal> 
     </goals> 
    </execution> 
   </executions> 
  </plugin>
 </plugins> 
</build> 
</project>
object HelloWorld { 
def main(args: Array[String]): Unit = { 
println("This is my first Scala program") 
} 
}

1.4输出方式

1.4.1使用"+"进行连接

object Print01 { 
def main(args: Array[String]): Unit = { 
//定义变量name代表姓名 
  var name:String = "tom" 
//使用"+"号输出姓名 
  println("my name is :"+name) 
  } 
}

1.4.2使用printf输出,利用%传递值

object Print02 { 
def main(args: Array[String]): Unit = { 
//定义变量name代表姓名 
  var name:String = "tom" 
  //使用"%"号输出姓名 
  printf("my name is :%s",name) 
  } 
}

1.4.3通过$引用值

object Print03 { 
def main(args: Array[String]): Unit = { 
  var name:String = "tom" 
  printf(s"my name is $name") 
  } 
}

1.4 变量

变量是程序的基本组成单位
变量相当于内存中一个数据存储空间的表示

object Var01 { 
def main(args: Array[String]): Unit = { 
  var name:String = "tom" 
  }
}

定义变量时需要指定变量的名称、类型和初始化值
在定义变量时,其类型可以省略,scala可以使用自动类型推导,自动推导出变量类型
scala属于强类型语言,变量类型一定确定,其后不可再修改
强类型:数据类型一旦确定,其后不可修改
弱类型:不强调类型的重要性,其类型由指定值类型确定

1.5 val的使用

使用val修饰的变量即Scala中的常量,其值一旦定义则不可再修改

object Val01 { 
def main(args: Array[String]): Unit = { 
  //使用var定义变量 
  var name01:String = "tom" 
  name01 = "elen" 
  //name的值定以后可以再次修改 
  //使用val定义变量 
  val name02:String = "sam" 
  name02 = "error"//错误:name02的值不可再修改 
  } 
}

1.6 数据类型

1.6.1 数据类型的定义

数据类型用来指定变量在内存中占用空间大小

1.6.2 Scala数据类型体系

Scala中的数据类型分为值类型(AnyVal)和引用类型(AnyRef)两大类
Scala中数类型相对复杂,用以把面向对象编程和面向函数编程进行融合
在这里插入图片描述

1.6.3 Unit类型、Null类型、Nothing类型说明

Unit表示无值,和其他语言中的void类似,用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()
Nullnull,Null类型只有一个实例值
NothingNothing类型在Scala类层级的最低端;它是任何其他类型的子类型。当一个函数确定没有正常类型的返回值时,可以用Nothing指定返回类型,这样有一个好处,我们可以把返回的值(异常)赋给其他的函数或者变量(兼容性)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值