栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Scala基础语法(一)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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)配置环境变量

 (5)在PATH添加环境变量

(6)注意事项

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

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

 1.2 测试环境是否搭建成功

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

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

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

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

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

 1.3 安装插件

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

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

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

2.创建IDEA项目工程 

2.1 添加项目框架

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

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

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

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

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

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

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

 2.2 创建项目源文件目录

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

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

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

(1)案例测试如下:

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


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=%dn", 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 数值数据类型

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)扩展面试题

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 算术运算符

7.2 关系运算符

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

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

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

7.3 逻辑运算符

7.4 位运算符

<<左移:比如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差不多,这里就不做一样赘述了。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/886261.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号