Scala基础语法(一)

目录

1.scala环境搭建

    1.1 安装scala

    1.2 测试环境是否搭建成功

     1.3 安装插件

2.创建IDEA项目工程 

     2.1 添加项目框架

      2.2 创建项目源文件目录

      2.3 在scala目录下新建一个包,用于编写程序代码。

3.变量与常量

4.字符串输出 

     4.1 基本语法

     4.2 字符串输出案例

 5. 键盘输入   

6.数据类型

     6.1 数值数据类型

     6.2 数值数据类型的转换(scala中数据类型的转换与java一致)

     6.3 String类型与数值类型的互相转换

 7 运算符

     7.1 算术运算符

      7.2 关系运算符

      7.3 逻辑运算符

      7.4 位运算符

8.流程控制


1.scala环境搭建

1.1 安装scala

(1)首先确保安装JKD1.8,如何安装JDK1.8可以参考网络上的其他安装教程

(2)scala官方下载所需要的版本。由于考虑到后续要学习的spark框架,因此这里我选择下载

             scala-2.12.11
SCALA官方网址https://scala-lang.org/download/all.html(3)将scala安装包解压到本地文件即可,这里我解压到 C:\tools\

(4)配置环境变量

Scala基础语法(一)_第1张图片

 (5)在PATH添加环境变量

Scala基础语法(一)_第2张图片

(6)注意事项

注意 1:解压路径不能有任何中文路径,最好不要有空格。

注意 2:环境变量要大写 SCALA_HOME

 1.2 测试环境是否搭建成功

   测试案例:a = 10, b = 12 计算a + b 的值

(1)按住WIN+R或者直接在搜索框数据cmd + enter, 打开dos窗口

(2)输入 Scala 并按回车键,启动 Scala 环境。如下图所示,则环境配置成功。如果出现其他情

        况,应该是你的环境变量没有配置好,建议再检查一下。

Scala基础语法(一)_第3张图片

(3)定义变量,开始进行案例测试

Scala基础语法(一)_第4张图片

 1.3 安装插件

  因为IDEA本身并不支持scala的开发,因此需要额外安装一个SCALA插件。

(1)离线安装:这里需要提前去官网上下载。然后打开 IDEA,在左上角找到 File->在下拉菜单中点击 Setting... ->点击 Plugins->点击 右 下 角 Install plugin from disk… , 找 到 插 件 存 储 路 径 D:\Tools\scala-2.12.11\scala-intellij-bin-2017.2.6.zip,最后点击 ok。

(2)在线安装:打开IDEA。settings->plugins->搜索框搜索Scala -> 点击install即可

2.创建IDEA项目工程 

2.1 添加项目框架

(1)打开 IDEA->点击左侧的 Flie->选择 New->选择 Project…

Scala基础语法(一)_第5张图片

(2)创建一个 Maven 工程,并点击 next

Scala基础语法(一)_第6张图片

(3)Name:输入项目名称, Location:输入项目地址 , GroupId:输入公司域名.公司名称, ArtifactId:输入 项目名称->点击 next->点击 Finish, 

Scala基础语法(一)_第7张图片

        注意:工程存储路径一定不要有中文和空格。

(4)默认情况下,IDEA不支持scala开发,因此这里需要引入scala框架。在项目名称上右键->选择Add Framework Support...>选择 Scala->点击 OK 。

Scala基础语法(一)_第8张图片

 啊..... 这个我已经添加好了,不好截细节图,所以从别地拷贝了一张,添加scala框架界面就是这样的。。。。。。

Scala基础语法(一)_第9张图片

 注意:如果是第一次引入框架,Use libary 看不到,需要选择你的 Scala 安装目录,然 后工具就会自动识别,就会显示 user libary。

 2.2 创建项目源文件目录

(1)右键点击 main 目录->New->点击 Diretory -> 写个名字(比如 scala)。

(2)右键点击 scala 目录->Mark Directory as->选择 Sources root,观察文件夹颜色发生变化。

Scala基础语法(一)_第10张图片

 2.3 在scala目录下新建一个包,用于编写程序代码。

(1)案例测试如下:

有意思的是JAVA也可以混着一起用。

Scala基础语法(一)_第11张图片


/*这是一个多行注释*/
object Demo01 {
  def main(args: Array[String]): Unit = {
    //  1. 测试
    println("==========测试============")
    println("hello world")
    System.out.println("hello scala from java")
    }
}

 (2)关联scala源码

去官网下载对应版本的scala源码包,加载到本地即可

3.变量与常量

(1)注释。scala的注释与java一致。 //表示单行注释,/**/表示多行注释,/** */表示文档注释

(2)变量和常量。

        var 变量名 [: 变量类型] = 初始值 var i:Int = 10 val

        常量名 [: 常量类型] = 初始值 val j:Int = 20

注意:能用常量的地方不用变量

 (3)标识符的命名规则

        1)以字母或者下划线开头,后接字母、数字、下划线

        2)以操作符开头,且只包含操作符(+ - * / # !等)

        3)用反引号`....`包括的任意字符串,即使是 Scala 关键字(39 个)也可以

  package, import, class, object, trait, extends, with, type, for , private, protected, abstract, sealed, final, implicit, lazy, override , try, catch, finally, throw , if, else, match, case, do, while, for, return, yield , def, val, var , this, super ,new , true, false, null

4.字符串输出

4.1 基本语法

(1)字符串,通过+号连接

(2)printf 用法:字符串,通过%传值。

(3)字符串模板(插值字符串):通过$获取变量值

4.2 字符串输出案例

package com.atguigu.chapter02
object TestCharType {
 def main(args: Array[String]): Unit = {
     var name: String = "jinlian"
     var age: Int = 18
 //(1)字符串,通过+号连接
     println(name + " " + age)
 //(2)printf 用法字符串,通过%传值。
     printf("name=%s age=%d\n", name, age)
 //(3)字符串,通过$引用
//多行字符串,在 Scala中,利用三个双引号包围多行字符串就可以实现。
//输入的内容,带有空格、\t 之类,导致每一行的开始位置不能整洁对齐。
//应用 scala 的 stripMargin 方法,在 scala 中 stripMargin 默认
是“|”作为连接符,//在多行换行的行头前面加一个“|”符号即可。
     val s =
     """
     |select
     | name,
     | age
     |from user
     |where name="zhangsan" 
     """.stripMargin
    println(s)
//如果需要对变量进行运算,那么可以加${}
     val s1 =
     s"""
     |select
     | name,
     | age
     |from user
     |where name="$name" and age=${age+2}
     """.stripMargin
     println(s1)
     val s2 = s"name=$name"
     println(s2)
 }
}

 5. 键盘输入   

1)基本语法

 StdIn.readLine()、StdIn.readShort()、StdIn.readDouble()

2)案例实操

需求:可以从控制台接收用户信息,【姓名,年龄,薪水】。

import scala.io.StdIn
object TestInput {
 def main(args: Array[String]): Unit = {
     // 1 输入姓名
     println("input name:")
     var name = StdIn.readLine()
     // 2 输入年龄
     println("input age:")
     var age = StdIn.readShort()
     // 3 输入薪水
     println("input sal:")
     var sal = StdIn.readDouble()
     // 4 打印
     println("name=" + name)
     println("age=" + age)
     println("sal=" + sal)
 }
}

6.数据类型

SCALA是纯面向对象语言,在JAVA基础上更上一层。因此没有基本数据类型,只有包装类型和引用数据类型

6.1 数值数据类型

Scala基础语法(一)_第12张图片

6.2 数值数据类型的转换(scala中数据类型的转换与java一致)

(1)精度小向精度大的自动转换: var d: Double = 12

(2)精度大向精度小的需要强制转换,同时存在失去精度的风险 var d: Int = 12.33.toInt

6.3 String类型与数值类型的互相转换

(1)基本类型转 String 类型(语法:将基本类型的值+"" 即可)val s1: String = 123 + ""

(2)String 类型转基本数值类型

(语法 s1.toInt、s1.toFloat、s1.toDouble、s1.toByte、s1.toLong、s1.toShort)

(3)扩展面试题

Scala基础语法(一)_第13张图片

Int 4个字节表示:

原码:0000 0000 0000 0000 0000 0000 1000 0010

补码:0000 0000 0000 0000 0000 0000 1000 0010(整数的补码是其本身)

强制转换成Byte,byte具有1个字节8位,强制转换的话是直接截取补码的后8位

补码:1000 0010

原码:1111 1101 + 1 = 1000 1110 = -126 (负数补码转换成原码,符号位不变,其余的位置逐一取反后加一)

 7 运算符

7.1 算术运算符

Scala基础语法(一)_第14张图片

7.2 关系运算符

Scala基础语法(一)_第15张图片

 注意:Java 和 Scala 中关于==的区别

  •  》》在java中:==比较两个变量本身的值,即两个对象在内存中的首地址; equals 比较字符串中所包含的内容是否相同。

》》在scala中:==更加类似于 Java 中的 equals,参照 jd 工具

7.3 逻辑运算符

Scala基础语法(一)_第16张图片

7.4 位运算符

Scala基础语法(一)_第17张图片

<<左移:比如a = 60, a << 2  其实就是a * 2^2 = a * 4=60 * 4=240  在二进制中,转换成补码再操作:左移两位,后面补0,符号位不变。再转换成源码

>>右移:比如a = 60, a >> 2  其实就是a / 2^2 = a / 4=60 / 4=15  在二进制中,转换成补码再操作:右移两位,补符号位。再转换成源码。

8.流程控制

SCALA的流程控制语句和JAVA差不多,这里就不做一样赘述了。

你可能感兴趣的:(大数据,scala,开发语言,后端)