• 快学Scala(11)--操作符


    f(arg1, arg2, ...)        //f.apply(arg1, arg2, ...)
    f(arg1, arg2, ...) = value   //f.update(arg1, arg2, ..., value)
    

      

    object Fraction {
    
      def apply(n: Int, d: Int) = new Fraction(n, d)
    
      def unapply(input: Fraction): Option[(Int, Int)] =
        if(input.den == 0) None else Some((input.num, input.den))
    
      def main(args: Array[String]): Unit = {
        var Fraction(n,d) = Fraction(3, 4) * Fraction(2, 5)
      }
    
    }
    
    class Fraction(n: Int, d: Int) {
    
      private val num = n
      private val den = d
    
      def*(other: Fraction) = new Fraction(num*other.num, den*other.den)
    
    
    }
    

      此时d=6,n=20

    unapplySeq方法

    object Name {
    
      def unapplySeq(input: String) : Option[Seq[String]] =
        if(input.trim == "") None else Some(input.trim.split("\s+"))
    
      def main(args: Array[String]): Unit = {
        var Name(first, "van", last) = "A van B"
        printf("%s, %s", first, last)
      }
    }
    

      此时first=A, last=B

      

  • 相关阅读:
    奇异值分解SVD
    Google Draco点云压缩
    C++计时函数
    NDT正态分布变换配准
    点云配准 Registration
    图像的距
    镜头基础
    道格拉斯-普克算法
    霍夫变换
    opencv基础
  • 原文地址:https://www.cnblogs.com/PaulingZhou/p/6661545.html
Copyright © 2020-2023  润新知