sunny123456

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

scala-入门函数介绍

今天这个内容纯粹就是入门的代码,了解就可以看懂大部分代码了。

直接上代码说明

/*
 * 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个参数。可以搞成重写的方式。

使用方法

主要还是根据入参的个数决定是调用那个函数。写法可以参考上图。

结果

直接看结果就能是不是就知道怎么使用了

希望,对刚接触有些帮助

原文链接:https://zhuanlan.zhihu.com/p/628855530
posted on 2024-01-14 02:12  sunny123456  阅读(0)  评论(0编辑  收藏  举报