编程知识 cdmana.com

Le chemin du Big Data Advanced - - Scala Advanced Function

Fonctions avancées

String

  • Interpolation
  val s ="hello"
  val name="jacksun"
  println(s+name)
  println(s+":"+name)

  println(s"hello:$name")

  • Chaîne multiligne
  //Plusieurs lignes
  var d =
    """ |1 |2 |3 |4 |5 |5 |6 """.stripMargin

Fonction anonyme

Les fonctions anonymes sont divisées en fonctions anonymes paramétriques、Fonctions anonymes sans paramètres、Fonction anonyme avec valeur de retour.(Le paramètre anonyme peut être retourné à unvalValeur déclarée,Une fonction anonyme ne peut pas explicitement déclarer une valeur de retour)

package org.example

object FunctionApp extends App {
    

  //Fonction anonyme avec paramètres
  val printy = (a : Int) => {
    
    println(a)
  }
  printy(999)

  //Fonction anonyme sans argument
  val printx = ()=>{
    
    println("Scala No.1")
  }
  printx()

  //Fonction anonyme avec valeur de retour
  val add = (a:Int,b:Int) =>{
    
    a+b
  }
  println(add(4,4))

}


Currying

Convertit l'acceptation d'un paramètre en 2- Oui.

def add(a:Int,b:Int) = a+b
println(add(2,1))
//Currying
def add2(a:Int)(b:Int) = a+b
println(add2(2)(1))

Fonction d'ordre supérieur

Fonction d'ordre supérieur(Higher-Order Function) Est une fonction qui fonctionne sur d'autres fonctions .

Scala Autoriser l'utilisation de fonctions d'ordre supérieur dans , Les fonctions d'ordre supérieur peuvent utiliser d'autres fonctions comme arguments , Ou utiliser une fonction comme résultat de sortie .

object Test {
    
   def main(args: Array[String]) {
    

      println( apply( layout, 10) )

   }
   // Fonctions f Et Valeur v Comme paramètre,Et la fonction f  J'ai encore appelé le paramètre  v
   def apply(f: Int => String, v: Int) = f(v)

   def layout[A](x: A) = "[" + x.toString() + "]"
   
}


  • map

Travailler sur les tuples de chaque collection


scala> val l =List(1,2,3,4,5,6,7,8,9)
l: List[Int] = List(1, 2, 3, 4, 5, 6, 7, 8, 9)

scala> l.map(x=>(x+1))
res5: List[Int] = List(2, 3, 4, 5, 6, 7, 8, 9, 10)

scala> l.map((x:Int)=>x*2)
res6: List[Int] = List(2, 4, 6, 8, 10, 12, 14, 16, 18)

scala> l.map(x=>x*2)
res7: List[Int] = List(2, 4, 6, 8, 10, 12, 14, 16, 18)

scala> l.map(_*2)


  • filter
    Conditions de filtration
scala> l.filter(_>5)
res9: List[Int] = List(6, 7, 8, 9)

  • take
    Accès aux données
scala> l.take(1)
res10: List[Int] = List(1)

scala> l.take(3)
res11: List[Int] = List(1, 2, 3)

  • reduce
    Deux additions et soustractions
scala> l.take(3).reduce(_-_)
res15: Int = -4
//  Soustraire de gauche 
scala> l.take(3).reduceLeft(_-_)
res16: Int = -4
//  Soustraire de droite 
scala> l.take(3).reduceRight(_-_)
res17: Int = 2

版权声明
本文为[Sun zhongming]所创,转载请带上原文链接,感谢
https://cdmana.com/2021/10/20211013211945058g.html

Scroll to Top