寒假学习3scala简介与基础1

Scala----Java++
Scala更适合大数据的处理
spark的底层用Scala编写
spark对集合类型数据处理有非常好的支持
————————————————————————————————————————————————————————————

创建Scala文件之前需要先添加框架
创建Scala静态类object
打入main再输入table键就能够自动补全

package C01

/*
object:关键字,声明一个单例对象(伴生对象)
*/

object HelloWorld {
/*
main 方法:从外部可以直接调用执行的方法
def 方法名称(参数名称:参数类型[泛型]):返回值的类型 Unit代表返回值为空 = {方法体}
*/
def main(args: Array[String]): Unit = {
println("hello world")
System.out.println("hello scala from java")
}

}

在Scala中也可以直接使用Java中的方法,有些需要引入类库,有些则不用
——————————————————————————————————————————————————————————————

变量和数据类型

1.注释:和Java中完全一样

————————————————————————————————————————————————————————————————————————

2.变量和常量

Java
变量类型 变量名称 = 初始值 int a = 10
final 常量类型 常量名称 = 初始值 final int b = 20

scala
var 变量名 [:变量类型] = 初始值 var i:Int = 10
val 常量名 [:常量类型] = 初始值 val j:int = 20
注意:能用常量的地方尽量不要使用变量


package C02

object test2_Variable {
def main(args: Array[String]): Unit = {
//声明一个变量通用语法
var a : Int = 10

// (1)声明变量时,类型可以省略,编译器自动推导,即类型推导
var a1 = 10
val b1 = 23
// (2)类型确定后,就不能修改,说明 Scala 是强数据类型语言。
var a2 = 15 //a2 类型为Int
// a2 = "hello"

// (3)变量声明时,必须要有初始值
// var a3:Int

// (4)在声明/定义一个变量时,可以使用 var 或者 val 来修饰,var 修饰的变量可改变,
//val 修饰的变量不可改。
a1 = 8
// b1 = 9
// (5)var 修饰的对象引用可以改变,val 修饰的对象则不可改变,但对象的状态(值却是可以改变的。(比如:自定义对象、数组、集合等等)

}
}
——————————————————————————————————————————————————————————————————————

3.标识符的命名规范

命名规则
基本和Java是一致的,但是细节上会有所变化
(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

package C02

object test3_Identifier {
def main(args: Array[String]): Unit = {
//(1)以字母或者下划线开头,后接字母、数字、下划线
val hello:String = ""
var Hello123 = ""
val _abc = ""

//val h-b = ""
//val 123abc = 234

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

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

}
————————————————————————————————————————————————————————————————

4.字符串
1)基本语法
(1)字符串,通过+号连接
(2)printf 用法:字符串,通过%传值。
(3)字符串模板(插值字符串):通过$获取变量值

package C02

object test4_String {
def main(args: Array[String]): Unit = {

//(1)字符串,通过+号连接
val name = "admin"
val age = 18
println(name + age + "岁")

//加号属于相加操作,*号属于赋值操作
println(name*3)

//(2)printf 用法:字符串,通过%传值。
printf("%d岁的%s\n",age,name)

//(3)字符串模板(插值字符串):通过$获取变量值
println(s"${age}岁的${name}")

val num1:Double = 2.3456
val num2:Float = 2.3456f
println(f"The num is ${num1}%2.2f") //f 格式化模板字符串
println(raw"The num is ${num1}%2.2f") //raw 不加工

// 三引号表示字符串,保持多行字符串的原格式输出
val sql = s"""
|select *
|from
| student
|where
| name=${name}
|and
| age >${age}
|""".stripMargin
println(sql)

}

}

——————————————————————————————————————————————————————————————————————

5.键盘输入

在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取。
1)基本语法
StdIn.readLine()、StdIn.readShort()、StdIn.readDouble()

package C02

import scala.io.StdIn

object test5_StdIn {
def main(args: Array[String]): Unit = {
//输入信息
println("请输入名称")
val name = StdIn.readLine()
println("请输入年龄")
val age = StdIn.readInt()

//控制台打印输出
println(s"欢迎${age}岁的${name}到来")
}
}

——————————————————————————————————————————————————————————————————————

原文地址:https://www.cnblogs.com/dty602511/p/15760177.html