一天学完spark的Scala基础语法教程一、基础语法与变量(idea版本)

举报
红目香薰 发表于 2022/01/27 16:06:30 2022/01/27
【摘要】 ​📋前言📋💝博客主页:红目香薰_CSDN博客-大数据,计算机理论,MySQL领域博主💝✍本文由在下【红目香薰】原创🤗2022年最大愿望:【服务百万技术人次】🤗💝初始环境地址:【spark环境搭建(idea版本)_红目香薰-CSDN博客】💝环境需求环境:win10开发工具:IntelliJ IDEA 2021.2maven版本:3.6.3目录📋前言📋环境需求创建测试类:基本...

📋前言📋

💝博客主页:红目香薰_CSDN博客-大数据,计算机理论,MySQL领域博主💝

✍本文由在下【红目香薰】原创

🤗2022年最大愿望:【服务百万技术人次】🤗

💝初始环境地址:【spark环境搭建(idea版本)_红目香薰-CSDN博客】💝


环境需求

环境:win10

开发工具:IntelliJ IDEA 2021.2

maven版本:3.6.3

目录

📋前言📋

环境需求

创建测试类:

基本语法

标识符

Scala 关键字

Scala 注释

空行和空格

换行符

Scala 包

定义包

引用

Scala 数据类型

Scala 基础字面量

整型字面量 

浮点型字面量

布尔型字面量

字符字面量

字符串字面量

多行字符串的表示方法

Null 值

Scala 转义字符

        Scala 变量

        变量声明

总结:


创建测试类:

【day1/demo1.scala】

这里是有包名(后面有讲述)的

 通过Package可以创建包名

基本语法

Scala 基本语法需要注意以下几点:

  • 区分大小写 -  Scala是大小写敏感的,这意味着标识Hello 和 hello在Scala中会有不同的含义。

  • 类名 - 对于所有的类名的第一个字母要大写。
    如果需要使用几个单词来构成一个类的名称,每个单词的第一个字母要大写。

    示例:class MyFirstScalaClass

  • 方法名称 - 所有的方法名称的第一个字母用小写。
    如果若干单词被用于构成方法的名称,则每个单词的第一个字母应大写。

    示例:def myMethodName()

  • 程序文件名 - 程序文件的名称应该与对象名称完全匹配(新版本不需要了,但建议保留这种习惯)。
    保存文件时,应该保存它使用的对象名称(记住Scala是区分大小写),并追加".scala"为文件扩展名。 (如果文件名和对象名称不匹配,程序将无法编译)。

    示例: 假设"HelloWorld"是对象的名称。那么该文件应保存为'HelloWorld.scala"

  • def main(args: Array[String]) - Scala程序从main()方法开始处理,这是每一个Scala程序的强制程序入口部分。

标识符

Scala 可以使用两种形式的标志符,字符数字和符号。

字符数字使用字母或是下划线开头,后面可以接字母或是数字,符号"$"在 Scala 中也看作为字母。然而以"$"开头的标识符为保留的 Scala 编译器产生的标志符使用,应用程序应该避免使用"$"开始的标识符,以免造成冲突。

Scala 的命名规则采用和 Java 类似的 camel 命名规则,首字符小写,比如 toString。类名的首字符还是使用大写。此外也应该避免使用以下划线结尾的标志符以避免冲突。符号标志符包含一个或多个符号,如+,:,? 等

+ ++ ::: < ?> :->

Scala 关键字

下表列出了 scala 保留关键字,我们不能使用以下关键字作为变量:

abstract case catch class
def do else extends
false final finally for
forSome if implicit import
lazy match new null
object override package private
protected return sealed super
this throw trait try
true type val var
while with yield
- : = =>
<- <: <% >:
# @

Scala 注释

Scala 类似 Java 支持单行和多行注释。多行注释可以嵌套,但必须正确嵌套,一个注释开始符号对应一个结束符号。注释在 Scala 编译中会被忽略,

实例如下:

package day1
/* 这是一个 Scala 程序
    * 这是一行注释
    * 这里演示了多行注释
    */
object demo1 {
  def main(args: Array[String]) {
    // 输出 Hello World
    // 这是一个单行注释
    println("Hello, world!")
  }
}

空行和空格

一行中只有空格或者带有注释,Scala 会认为其是空行,会忽略它。标记可以被空格或者注释来分割。

换行符

Scala是面向行的语言,语句可以用分号(;)结束或换行符。Scala 程序里,语句末尾的分号通常是可选的。如果你愿意可以输入一个,但若一行里仅 有一个语句也可不写。另一方面,如果一行里写多个语句那么分号是需要的。

例如:

package day1

object demo1 {
  def main(args: Array[String]) {
    val s = "菜鸟教程";
    println(s);
    println(s);
  }
}

Scala 包

定义包

Scala 使用 package 关键字定义包,在Scala将代码定义到某个包中有两种方式:

第一种方法和 Java 一样,在文件的头定义包名,这种方法就后续所有代码都放在该包中。

比如:

//包名
package day1
//类名
object demo1 {
  //函数名
  def main(args: Array[String]) {

  }
}

引用

Scala 使用 import 关键字引用包。

//包名
package day1
//引入util下所有
import java.util._
//类名
object demo1 {
  //函数名
  def main(args: Array[String]) {

  }
}

Scala 数据类型

Scala 与 Java有着相同的数据类型,下表列出了 Scala 支持的数据类型:

数据类型 描述
Byte 8位有符号补码整数。数值区间为 -128 到 127
Short 16位有符号补码整数。数值区间为 -32768 到 32767
Int 32位有符号补码整数。数值区间为 -2147483648 到 2147483647
Long 64位有符号补码整数。数值区间为 -9223372036854775808 到 9223372036854775807
Float 32 位, IEEE 754 标准的单精度浮点数
Double 64 位 IEEE 754 标准的双精度浮点数
Char 16位无符号Unicode字符, 区间值为 U+0000 到 U+FFFF
String 字符序列
Boolean true或false
Unit 表示无值,和其他语言中void等同。用作不返回任何结果的方法的结果类型。Unit只有一个实例值,写成()。
Null null 或空引用
Nothing Nothing类型在Scala的类层级的最底端;它是任何其他类型的子类型。
Any Any是所有其他类的超类
AnyRef AnyRef类是Scala里所有引用类(reference class)的基类

上表中列出的数据类型都是对象,也就是说scala没有java中的原生类型。在scala是可以对数字等基础类型调用方法的。

Scala 基础字面量

Scala 非常简单且直观。接下来我们会详细介绍 Scala 字面量。

整型字面量 

整型字面量用于 Int 类型,如果表示 Long,可以在数字后面添加 L 或者小写 l 作为后缀。

浮点型字面量

如果浮点数后面有f或者F后缀时,表示这是一个Float类型,否则就是一个Double类型的。

布尔型字面量

布尔型字面量有 true 和 false。 ​​

字符字面量

在 Scala 字符变量使用单引号 ' 来定义,如下:

package day1

object demo1 {
  def main(args: Array[String]) {
    var c='A';
    println(c+0)
  }
}

字符串字面量

在 Scala 字符串字面量使用双引号 " 来定义,如下:

package day1

object demo1 {
  def main(args: Array[String]) {
    println("Hello,\nWorld!")
  }
}

多行字符串的表示方法

多行字符串用三个双引号来表示分隔符,格式为:""" ... """。

实例如下:

package day1

object demo1 {
  def main(args: Array[String]) {
    val str =
      """
                 道路千万条
                 安全第一条
                 行车不规范
                 亲人两行泪
      """;
    print(str);
  }
}

Null 值

空值是 scala.Null 类型。

Scala.Null和scala.Nothing是用统一的方式处理Scala面向对象类型系统的某些"边界情况"的特殊类型。

Null类是null引用对象的类型,它是每个引用类(继承自AnyRef的类)的子类。Null不兼容值类型。

Scala 转义字符

下表列出了常见的转义字符:

转义字符 Unicode 描述
\b \u0008 退格(BS) ,将当前位置移到前一列
\t \u0009 水平制表(HT) (跳到下一个TAB位置)
\n \u000a 换行(LF) ,将当前位置移到下一行开头
\f \u000c 换页(FF),将当前位置移到下页开头
\r \u000d 回车(CR) ,将当前位置移到本行开头
\" \u0022 代表一个双引号(")字符
\' \u0027 代表一个单引号(')字符
\\ \u005c 代表一个反斜线字符 '\'

0 到 255 间的 Unicode 字符可以用一个八进制转义序列来表示,即反斜线‟\‟后跟 最多三个八进制。

在字符或字符串中,反斜线和后面的字符序列不能构成一个合法的转义序列将会导致 编译错误。

package day1

object demo1 {
  def main(args: Array[String]) {
    println("Hello\tWorld\n\n" );
  }
}


Scala 变量

变量是一种使用方便的占位符,用于引用计算机内存地址,变量创建后会占用一定的内存空间。

基于变量的数据类型,操作系统会进行内存分配并且决定什么将被储存在保留内存中。因此,通过给变量分配不同的数据类型,你可以在这些变量中存储整数,小数或者字母。

变量声明

在学习如何声明变量与常量之前,我们先来了解一些变量与常量。

  • 一、变量: 在程序运行过程中其值可能发生改变的量叫做变量。如:时间,年龄。
  • 二、常量 在程序运行过程中其值不会发生变化的量叫做常量。如:数值 3,字符'A'。

在 Scala 中,使用关键词 "var" 声明变量,使用关键词 "val" 声明常量。

由于Scala是属于弱类型的,故而变量类型不需要单独声明,当然想声明也可以:

val Str : String = "test";//声明类型的变量

声明变量实例如下:

package day1

object demo1 {
  def main(args: Array[String]) {
    var isf=true;//true与false
    var c ='y';//short.Max*2,字符ASCII码
    var i=666;//int最大值21亿
    var l=99999999999999999l;//long类型需要一个小写的【l】结尾
    var f=3.14f;//float需要【f】结尾
    var d=3.1415926;//double不需要
    var s="Hello";
  }
}

总结:

到这里有关spark的Scala基础语法教程一、基础语法与变量(idea版本)就讲解完了。

希望能对大家有所帮助。

欢迎一键三连,谢谢。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。