Scala
只是学习无基本理论
安装Scala
装前必须有jdk
windows安装
解压缩 D:dev/scala
配置环境变量
SCALA_HONE
path
cmd检查
Scala -version
直接输入Scala 控制台运行
idea安装与运行Scala
idea-->插件-->scala-->安装-->重启
新建maven项目
catalog-->maven
archetype-->
项目结构-->全局库-->添加Scala
添加应用支持-->scala
add开头
新建Scala类 选择 object
scala 完全面向对象
scala风格与java风格
public class JavaDemo01 {
public static void main(String[] args) {
System.out.println("我爱你中国");
}
}
javac JavaDemo01
object ScalaDemo01{
def main(args: Array[String]): Unit = {
print("我爱你中国")
}
}
scalac ScalaDemo01
终端运行Scala
编码 utf-8
scalac 文件名字--> 生成 文件名字$.class 与 文件名字.class-->调用 文件名字.class
Scala项目启动方式
main函数与extends app特质的区别:
App是scala语言内置的一个特质,使用它,则把对应object内部的整体作为scala main的一部分,有延迟启动的特性。
同时,命令行参数args也作为App特质的一部分,可以被开发者直接使用。而main函数则是scala的默认启动方式。
使用main函数
object ScalaDemo02{
def main(args: Array[String]): Unit = {
print("我爱你中国")
}
}
使用App特质
object ScalaDemo03 extends App{
print("我爱你中国")
}
object ScalaDemo04 extends App{
print(args(0))
}
终端运行:
scalac ScalaDemo04.scala
scala ScalaDemo04 lhz
Scala代码与Java代码混用
object ScalaDemo05{
def main(args: Array[String]): Unit = {
System.out.println("我爱你中国")
}
}
在 Scala 代码中 可以直接使用 Java 代码
注意:main 方法使用Scala 风格
变量与常量
object ScalaDemo06{
def main(args: Array[String]): Unit = {
// var 变量 修饰符
var a:Int = 10
// val 常量 修饰符
val b:Int = 10
a = 20
println(a)
/**
*报错
*reassignment to val
*/
// b = 20
}
}
字符串基本使用
object ScalaDemo07{
def main(args: Array[String]): Unit = {
var str01:String = "我爱你"
var str02:String = "中国"
// java 风格
println (str01 + str02)
// 插值方式 与 python 风格比较相像
var slogan:String = "桃李不言下自成蹊"
println(s"slogan >>> $slogan")
println("""
|我爱你中国
|亲爱的母亲
""".strpMargin)
}
}
选择结构
object ScalaDemo08{
def main(args: Array[String]): Unit = {
var weekDay:Int = 1
if (weekDay == 1){
println("周一")
}else if (weekDay == 2){
println("周二")
}else if (weekDay == 3){
println("周三")
}else if (weekDay == 4){
println("周四")
}else if (weekDay == 5){
println("周五")
}else if (weekDay == 6){
println("周六")
}else{
println("周日")
}
}
}
循环结构
object ScalaDemo09{
def main(args: Array[String]): Unit = {
var count:Int = 0
while(count<5){
println(count)
count += 1
}
}
}
object ScalaDemo10{
def main(args: Array[String]): Unit = {
//Range 1 to 5
println(1 to 5)
println(1.to(5))
println(1 until 5)
println(1.until(5))
// <- 赋值
for (i <- 0 until 5){
println(i)
}
println("--------------------^_ ~ _^----------------------")
// 求偶数值
for (i <- 0 until 10){
if (i % 2 == 0){
println(i)
}
}
println("--------------^_ ~ _^----------------")
for (i <- 0 until 10 if i % 2 == 0){
println(i)
}
println("--------------^_ ~ _^----------------")
for (i <- 0 until 10 by(2)){
println(i)
}
println("--------------------^_ ~ _^----------------------")
// 增强for循环
var courses = Array("Hadoop","Hive","Sqoop","Flume","Hbase","Phoenix","Presto")
for (course <- courses){
println(course)
}
}
}
函数
无参数 无返回值
object ScalaDemo01