0
点赞
收藏
分享

微信扫一扫

scala 初学者入门开发笔记整理

肉肉七七 2022-12-03 阅读 115


语法说明

  • val: 定义常量
  • var: 定义变量
  • object: 类里面的 方法 可以直接调用, object 类里面的方法类似于 java 中的静态方法
  • class: 类里面的方法必须先实例化对象再调用
  • trait: 定义接口
  • def: 声明方法
  • val: 声明函数
  • 使用 _ 将 方法转为函数。EG: ​​val f1 = m0 _​
  • scala 使用 ​​_​​​ 作为通配符, 而不是 ​​*​​​。 EG: ​​import java.util._​
  • 使用 case class 声明的类创建对象时不需要使用 new 关键词

 

主函数有两种启动方式

// 方式-1
object AnswerApp {
def main(args: Array[String]): Unit = {
// start...
}
}

// 方式-2
object AiApp extends App {
// start ...
}

 

入门案例-1

object AiApp extends App {

// 元素拼接
println(Seq("answerAil", "payabilityRule4Warn", 123, "20190731").mkString("|||"))
// output: answerAil|||payabilityRule4Warn|||123|||20190731
println()

// 定义一个 list
var list = List(1, 2, 3, 4)
// :: 用来拼接一个元素与一个 List, 将 7 添加到列表开头, 不能使用 list::7
list = 7::list
for (e <- list) {
print(e + "-")
}
// output: 7-1-2-3-4-
println("\n")

val myList = List(1, 2, 3) ::: List(4, 5, 6)
for(e <- myList) {
print(e + "-")
}
// output: 1-2-3-4-5-6-
println("\n")

// 定义一个 set
var set = Set(1, 3, 5, 7)
for (e <- set) {
print(e + "-")
}
// output: 1-3-5-7-
println("\n")

// 定义一个 map
val map = Map("one" -> 1, "two" -> 2, "three" -> 3)
for ((k, v) <- map) {
print("k=" + k + ", v=" + v + " ")
}
// output: k=one, v=1 k=two, v=2 k=three, v=3
println("\n")

// 字符串列表
val strList: List[String] = List("Sina", "Google", "Baidu")

// 整型列表
val numList: List[Int] = List(1, 2, 3, 4)

// 空列表
val empty: List[Nothing] = List()

// 二维列表
val dim: List[List[Int]] = List(
List(1, 0, 0),
List(0, 1, 0),
List(0, 0, 1)
)
for (e <- dim) {
for (ele <- e) {
print(ele + "-")
}
println()

val inList = e.asInstanceOf[List[Int]].map(element => {element + 1})
print(inList)
println("\n")
}
/**
output:
1-0-0-
List(2, 1, 1)

0-1-0-
List(1, 2, 1)

0-0-1-
List(1, 1, 2)
*/
}

 

入门案例-2

object AnswerApp {

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

val list = List(1, 3, 5, 7)
val list2 = list.map(e => {
e + 2
})

for (e <- list2) {
print(e + "-")
}
// output: 3-5-7-9-
println("\n")

val user = UserDTO("Answer", "123456", 20, "answer_ljm@163.com", "pt")
println(user.userName)
// output: Answer
println()

val cacher = new Cacher
cacher.say("hello scala")
println()

println(cacher.trans("answer"))
// output: rlt=answer
println()

println(cacher.myFun(3))
// output: 6
println()

println(Calculater.add(10, 20))
// output: 30
}

// 使用 case class 定义类创建对象时不需要 new
case class UserDTO(userName: String, password: String, age: Integer, email: String, address: String)
}


object Calculater {
def add(x: Int, y: Int): Int = {
x + y
}

def sub(x: Int, y: Int): Int = {
x - y
}

def multi(x: Int, y: Int): Int = {
x * y
}

def div(x: Int, y: Int): Int = {
x / y
}
}

class Cacher {
// 返回值为空
def say(message: String): Unit = {
println(message)
}

// 返回值为 String
def trans(message: String): String = {
String.format("rlt=%s", message)
}

// 声明一个函数
val myFun = (x: Int) => x + 3
}


举报

相关推荐

0 条评论