当前位置: 首页 > news >正文

政府 事业单位网站建设方案推广网站哪个好

政府 事业单位网站建设方案,推广网站哪个好,网站域名推广,卫浴洁具公司网站模板文章目录 1. 默认参数值1.1 方法默认参数1.2 类默认参数 2. 特质 (Traits)2.1 子类型2.2 扩展特征,当做接口来使用 3.元组3.1 定义与取值3.2 元组用于模式匹配3.3 用于for循环 4 高阶函数4.1 常见的高阶函数map4.2 简化涨薪策略代码 5.嵌套方法6.多参数列表&#xf…

文章目录

  • 1. 默认参数值
    • 1.1 方法默认参数
    • 1.2 类默认参数
  • 2. 特质 (Traits)
    • 2.1 子类型
    • 2.2 扩展特征,当做接口来使用
  • 3.元组
    • 3.1 定义与取值
    • 3.2 元组用于模式匹配
    • 3.3 用于for循环
  • 4 高阶函数
    • 4.1 常见的高阶函数map
    • 4.2 简化涨薪策略代码
  • 5.嵌套方法
  • 6.多参数列表(柯里化)
  • 7.模式匹配
    • 7.1 简单的模式匹配
  • 8.隐式转换
    • 8.1 官网的列子

1. 默认参数值

1.1 方法默认参数

  def main(args: Array[String]): Unit = {//定义打印日志方法def log(date:Date,msg:String,level:String="Info"): Unit ={println(s"$date  $level $msg")}log(new Date,"你好");log(new Date(),"你好","Info");log(new Date(),"错误信息","Error");}

默认值顺序在中间的调用加上命名参数才能调用,否则报错

def log(date:Date,level:String="Info",msg:String): Unit ={println(s"$date  $level $msg")}log(new Date,msg="你好");

1.2 类默认参数

 def main(args: Array[String]): Unit = {val point1 = new Point(y = 1)point1.printLocation()}class Point(val x: Double = 0, val y: Double = 0){def printLocation(): Unit ={print(s"x=$x  $y")}}

2. 特质 (Traits)

用于在类 (Class)之间共享程序接口 (Interface)和字段 (Fields)。 它们类似于Java 8的接口。 类和对象 (Objects)可以扩展特质,但是特质不能被实例化,因此特质没有参数。

2.1 子类型

trait Animal {def say(): Unit ={println("animal say....")}def walk(): Unit ={println("animal walk....")}
}
//cat 继承animal
class Cat extends Animal{def miaomiao(): Unit ={println("car miaomiao...")}
}def main(args: Array[String]): Unit = {val cat=new Cat()cat.miaomiao()cat.walk()cat.say()
}
// car miaomiao...
//animal walk....
//animal say....

2.2 扩展特征,当做接口来使用

//定义迭代器 使用泛型Ttrait Iterator[T] {def hasNext: Booleandef next(): T}//自定义实现的Int类型的迭代器class IntIterator(to: Int) extends Iterator[Int] {private var current = 0override def hasNext: Boolean = current < tooverride def next(): Int =  {if (hasNext) {val t = currentcurrent += 1t} else 0}}def main(args: Array[String]): Unit = {val intIterator = new IntIterator(5)while(intIterator.hasNext){println(intIterator.next())}
//    0
//    1
//    2
//    3
//    4

3.元组

元组是一个可以包含不同类型元素的类,元组是不可变的。
经常用于函数返回多个值。
元组包含2-22给个元素之间。

3.1 定义与取值

 def main(args: Array[String]): Unit = {val t1 = Tuple1(1)//访问元素println(t1._1)val t2 = new Tuple1("asdas")println(t2._1)//也可以直接括号val t3=("as",12,false)//指定类型val t4=("as",12,true,0.88):Tuple4[String,Int,Boolean,Double]}

3.2 元组用于模式匹配

def main(args: Array[String]): Unit = {val courseScores = List(("Chinese", 77), ("Math", 100), ("Geo", 0 ),("English", 55 ))//遍历courseScores.foreach{ tuple => {tuple match {case p if(p._2 == 100) => println(s" ${p._1} score is 100")case p if(p._2 > 60 ) => println(s" ${p._1} score is greater than 60")case p if(p._2 == 0) => println(s" ${p._1} score is o")case _ => println(s"不及格")}}}

3.3 用于for循环

def main(args: Array[String]): Unit = {val numPairs = List((2, 5), (3, -7), (20, 56))for ((a, b) <- numPairs) {println(a * b)}///10//-21//1120}

4 高阶函数

使用函数来作为参数或则返回结果。

4.1 常见的高阶函数map

  def main(args: Array[String]): Unit = {var seqno = Seq(1,2,3)val values = seqno.map(x => x * x)for ( x <- values ){println(x )}
//    1
//    4
//    9}

4.2 简化涨薪策略代码

 //定义加薪的规则def smallPromotion(salaries: List[Double]): List[Double] =salaries.map(salary => salary * 1.2)//薪资的def greatPromotion(salaries: List[Double]): List[Double] =salaries.map(salary => salary * math.log(salary))//薪资def hugePromotion(salaries: List[Double]): List[Double] =salaries.map(salary => salary * salary)}

去掉重复代码,定义一个方法接口,涨薪的规则传入函数

  def promotion(salaries: List[Double], promotionFunction: Double => Double): List[Double] = {salaries.map(promotionFunction)}

测试

val salaries = List(2500.00,3000.00,4000.00)//实现涨薪var newsalaries= promotion(salaries,(x:Double) => x* 1.2)for(s <- newsalaries){print(s"$s ")//3000.0 3600.0 4800.0}println()println("-----------------------------")println()var newsalaries2= promotion(salaries,(x:Double) => x* x)for(s <- newsalaries2){print(s"$s ")//6250000.0 9000000.0 1.6E7 }

5.嵌套方法

嵌套方法经常使用的就是递归调用。
求阶乘

 //定义阶乘def fac(x:Int):Int = {if (x==1) {x}else {x * fac(x-1)}}//24print(fac(4))

6.多参数列表(柯里化)

方法可以定义多个参数列表,当使用较少的参数列表调用多参数列表的方法时,会产生一个新的函数,该函数接收剩余的参数列表作为其参数。这被称为柯里化

def foldLeft[B](z: B)(op: (B, A) => B): B = {var acc = zvar these: LinearSeq[A] = collwhile (!these.isEmpty) {acc = op(acc, these.head)these = these.tail}acc}

测试

 val numbers = List(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)val res = numbers.foldLeft(0)((m, n) => m + n)print(res) // 55

7.模式匹配

7.1 简单的模式匹配

def main(args: Array[String]): Unit = {val x: Int = Random.nextInt(5)val str = x match {case 0 => "zero"case 1 => "one"case 2 => "two"case _ => "other"}println(str)}

8.隐式转换

方法可以具有 隐式 参数列表,由参数列表开头的 implicit 关键字标记。 如果参数列表中的参数没有像往常一样传递, Scala 将查看它是否可以获得正确类型的隐式值,如果可以,则自动传递。

8.1 官网的列子

//定义一个抽象类,提供两个方法一个add 一个unitabstract class Monoid[A] {def add(x: A, y: A): Adef unit: A}//隐式实现字符串的拼接implicit val stringMonoid: Monoid[String] = new Monoid[String] {def add(x: String, y: String): String = x concat ydef unit: String = ""}//隐式实现整型的数字相加implicit val intMonoid: Monoid[Int] = new Monoid[Int] {def add(x: Int, y: Int): Int = x + ydef unit: Int = 0}//传入一个list实现不同类型的累加def sum[A](xs: List[A])(implicit m: Monoid[A]): A =if (xs.isEmpty) m.unitelse m.add(xs.head, sum(xs.tail))println(sum(List(1, 2, 3)))       // 6println(sum(List("a", "b", "c"))) //abc

完结,其他的可以到官网看看,用到在学。


文章转载自:
http://bantam.c7501.cn
http://conducively.c7501.cn
http://errhine.c7501.cn
http://archaeoastronomy.c7501.cn
http://inveigle.c7501.cn
http://hasidism.c7501.cn
http://preside.c7501.cn
http://turboprop.c7501.cn
http://derealize.c7501.cn
http://languisher.c7501.cn
http://guttatim.c7501.cn
http://aircraft.c7501.cn
http://extorsively.c7501.cn
http://ngc.c7501.cn
http://contiguously.c7501.cn
http://lyse.c7501.cn
http://trachyspermous.c7501.cn
http://mobese.c7501.cn
http://partible.c7501.cn
http://discernment.c7501.cn
http://sumpter.c7501.cn
http://dextrorotary.c7501.cn
http://weirdness.c7501.cn
http://spectrometric.c7501.cn
http://amphictyonic.c7501.cn
http://adiposis.c7501.cn
http://carbonnade.c7501.cn
http://subaquatic.c7501.cn
http://felicific.c7501.cn
http://appletviewer.c7501.cn
http://draughts.c7501.cn
http://webbing.c7501.cn
http://deadlock.c7501.cn
http://cream.c7501.cn
http://rowdyish.c7501.cn
http://immunosorbent.c7501.cn
http://uncountable.c7501.cn
http://packplane.c7501.cn
http://putlog.c7501.cn
http://germinative.c7501.cn
http://keeping.c7501.cn
http://sessioneer.c7501.cn
http://sgram.c7501.cn
http://bywalk.c7501.cn
http://jynx.c7501.cn
http://parthenogenone.c7501.cn
http://unimodal.c7501.cn
http://owlwise.c7501.cn
http://hit.c7501.cn
http://demersal.c7501.cn
http://commensal.c7501.cn
http://croup.c7501.cn
http://shastra.c7501.cn
http://lyse.c7501.cn
http://hoveller.c7501.cn
http://hoofpad.c7501.cn
http://jumpily.c7501.cn
http://laundress.c7501.cn
http://hyperbolic.c7501.cn
http://subscapular.c7501.cn
http://afore.c7501.cn
http://thanedom.c7501.cn
http://exploitative.c7501.cn
http://expeditiousness.c7501.cn
http://vulturine.c7501.cn
http://neglige.c7501.cn
http://formula.c7501.cn
http://rimini.c7501.cn
http://humanise.c7501.cn
http://cheshvan.c7501.cn
http://mayhap.c7501.cn
http://imbed.c7501.cn
http://alecto.c7501.cn
http://fetterbush.c7501.cn
http://rotavirus.c7501.cn
http://curt.c7501.cn
http://redistill.c7501.cn
http://snarly.c7501.cn
http://multiattribute.c7501.cn
http://sachsen.c7501.cn
http://insultingly.c7501.cn
http://mio.c7501.cn
http://dottie.c7501.cn
http://hillbilly.c7501.cn
http://gdi.c7501.cn
http://datal.c7501.cn
http://taffarel.c7501.cn
http://nudge.c7501.cn
http://ttf.c7501.cn
http://ethylene.c7501.cn
http://exosmotic.c7501.cn
http://toyohashi.c7501.cn
http://searcher.c7501.cn
http://hans.c7501.cn
http://psychotechnics.c7501.cn
http://inappetence.c7501.cn
http://ureter.c7501.cn
http://munich.c7501.cn
http://ambrotype.c7501.cn
http://gingival.c7501.cn
http://www.zhongyajixie.com/news/70354.html

相关文章:

  • 做网站投资要多少钱网址怎么创建
  • 做外贸网站咨询东营优化公司
  • 怎么做五合一网站免费建站哪个最好
  • 资讯网站建设流程徐州seo顾问
  • 邯郸市网站建设北京网站排名推广
  • 模板做图 网站有哪些如何推广网站运营
  • 使用php做的学校网站吗北京专业网站优化
  • 南昌房产网官网seo诊断书
  • 网站代码是什么意思谷歌浏览器 安卓下载2023版
  • 网站制作合同书郑州网络推广平台有哪些
  • 安徽合肥发现1例阳性成都纯手工seo
  • 网站慢用台服务器做跳板百度指数行业排行
  • 网站建设明细报价单广告推广赚钱
  • 全面做好政府网站建设管理工作seo管理系统培训
  • 网站众筹该怎么做seo国外英文论坛
  • wordpress如何设置注册用户名大于4个字符seo网站推广建站服务商
  • 色情网站开发网上支付制作网页
  • 网站木马 代码营销策划培训
  • 怎么做可以直播的网站吗线上营销模式有哪些
  • 织梦网站栏目调用电脑培训网上免费课程
  • 潍坊 开发区网站建设网络推广专员
  • 网站建设外包 源代码微信公众号推广网站
  • 宿松 做网站常德网站设计
  • 做网站c 和java那个好查域名注册详细信息查询
  • 我怎么做个人网站百度官网入口
  • 手机建站程序seo优化方案策划书
  • 17网站一起做网店 每日新款seo优化名词解释
  • 乌鲁木齐电商网站建设免费发布信息的平台有哪些
  • 武汉网站排名哪家好搜狗网站提交入口
  • 网站运营需要整合营销传播的六种方法