今天这个内容纯粹就是入门的代码,了解就可以看懂大部分代码了。
直接上代码说明
/*
* Copyright (c) 2023. 世汉科技-数据
* All Rights Reserved.
* FileName: test.scala
* @author: po.an
* @date: 2023/5/12 上午11:44
* @version: 1.0
*/
package org.shihan.streaming.real
/**
* @packageName: org.shihan.streaming.real
* @className:test
* @Description:
* @author po.an
* @date 2023/5/12 11:44
*/
object test {
def main(args: Array[String]): Unit = {
var ss = "\"msgId\":\"2340512113152000006\""
println(ss)
ss=ss.replaceAll("\"","") // 引号替换为空
println("after is "+ss)
val p = new Pair(42, "String")
println(p.toString)
//指定类型
val p2 = new Pair[Any, Any](42, "String")
println(p2.toString)
val p3 = new PairS(42, "String",0.7)
println(p3.toString)
//指定类型
val p4 = new PairS[String, String,String]("aads", "aabs","aacs")
println(p4.toString)
val p5 = new PairS[(String,String), String,String](("aads","aacs"), "aabs","aacs")
println(p5.toString)
print(tst01(4,(4,0.6)))
}
def tst01(in:Int,in2:(Int,Double)): (Int,Double) ={
(in+in2._1,in*in2._2)
}
}
class Pair[T, S](val first: T, val second: S) {
override def toString = "(" + first + "," + second + ")"
}
class PairS[A,B,C](val a:A,val b:B,val c:C){
override def toString = "(" + a + "," + b + ","+c+")"
}
1.字符串替换
这是替换双引号的代码,经常用到
2.类的创建+泛型构造子
其实能看懂这2个类的构造子函数和使用,就可以能看懂大部分代码了。
针对这个做个逐一说明
说明 Pair
class Pair[T, S](val first: T, val second: S) {
override def toString = "(" + first + ","
+ second + ")"
}
[T, S] :这里定义这个构造函数就是2个参数,用“,”区分出有两个参数,其中T和S 说明两个参数的类型,这里只的是泛型,就说说白了可以是任何一种类型(这里T和S
可以随便填写,你可以写成,A,B 都可以)。
(val first: T, val second: S): 这里定参数,其中参数 first 类型为T, second 类型为S。
用法 Pair
结果 Pair
再说明一个
说明 PairS
class PairS[A,B,C](val a:A,val b:B,val c:C){
override def toString = "(" + a + "," + b +
","+c+")"
}
同Pair 一样,就是定义3个参数的泛型。
用法 PairS
val p3 = new PairS(42, "String",0.7)
直接给3个不同的类型的参数。
val p4 = new PairS[String, String,String]("aads", "aabs","aacs")
先定义三个参数的具体类型,然后赋值
val p5 = new PairS[(String,String), String,String](("aads","aacs"),
"aabs","aacs")
可以定义比较复杂的参数(String,String)
结果 PairS
3.函数定义
类型1
定义函数
定义函数tst01, 入参为 2个,分别是 in:Int,入参名字为 in, 其类型为I.
和比较复杂的 In2:(Int,Double),入参名字为in2,
其类型为复杂的自定义类型(Int,Double)
使用
结果
类型2
定义函数
这里有一个写法,就是函数 aggregate 后面跟了一个[t,ACC,R] 就是要说明,这个函数可以输入这3个参数
也可以定义输入2个参数。可以搞成重写的方式。
使用方法
主要还是根据入参的个数决定是调用那个函数。写法可以参考上图。
结果
直接看结果就能是不是就知道怎么使用了
希望,对刚接触有些帮助