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

音乐网站是否可以做浅度链接青岛seo建站

音乐网站是否可以做浅度链接,青岛seo建站,跨境网站开发公司,ps怎么做网站首页界面一、Scala方法的定义 有参方法&无参方法 def fun (a: Int , b: Int) : Unit {println(ab) } fun(1,1)def fun1 (a: Int , b: Int) ab println(fun1(1,2)) 注意点: 方法定义语法 用def来定义可以定义传入的参数,要指定传入参数的类型方法可以写返…

一、Scala方法的定义

  • 有参方法&无参方法
def fun (a: Int , b: Int) : Unit = {println(a+b)
}
fun(1,1)def fun1 (a: Int , b: Int) = a+b
println(fun1(1,2))

注意点:

  1. 方法定义语法 用def来定义
  2. 可以定义传入的参数,要指定传入参数的类型
  3. 方法可以写返回值的类型也可以不写,会自动推断,有时候不能省略,必须写,比如在递归方法中或者方法的返回值是函数类型的时候。
  4. scala中方法有返回值时,可以写return,也可以不写return,会把方法中最后一行当做结果返回。当写return时,必须要写方法的返回值。
  5. 如果返回值可以一行搞定,可以将{}省略不写
  6. 传递给方法的参数可以在方法中使用,并且scala规定方法的传过来的参数为val的,不是var的。
  7. 如果去掉方法体前面的等号,那么这个方法返回类型必定是Unit的。这种说法无论方法体里面什么逻辑都成立,scala可以把任意类型转换为Unit.假设,里面的逻辑最后返回了一个string,那么这个返回值会被转换成Unit,并且值会被丢弃。

二、递归方法

1./**
2.* 递归方法 
3.* 5的阶乘
4.*/
def fun2(num : Int) : Int = {if(num == 1)numelsenum * fun2(num-1)
}
print(fun2(5))

三、参数有默认值的方法

  1. 默认值的函数中,如果传入的参数个数与函数定义相同,则传入的数值会覆盖默认值。
  2. 如果不想覆盖默认值,传入的参数个数小于定义的函数的参数,则需要指定参数名称。
1./**
2.* 包含默认参数值的函数
3.* 注意:
4.* 1.默认值的函数中,如果传入的参数个数与函数定义相同,则传入的数值会覆盖默认值
5.* 2.如果不想覆盖默认值,传入的参数个数小于定义的函数的参数,则需要指定参数名称
6.*/
7.def fun3(a :Int = 10,b:Int) = {
8.  println(a+b)
9.}
10.fun3(b=2)

四、可变参数的方法

  1. 多个参数用逗号分开
1./**
2.* 可变参数个数的函数
3.* 注意:多个参数逗号分开
4.*/
5.def fun4(elements :Int*)={
6.  var sum = 0;
7.  for(elem <- elements){
8.    sum += elem
9.  }
10.  sum
11.}
12.println(fun4(1,2,3,4))

五、匿名函数

  1. 有参匿名函数
  2. 无参匿名函数
  3. 有返回值的匿名函数
  4. 可以将匿名函数返回给val定义的值
1./**
2.* 匿名函数
3.* 1.有参数匿名函数
4.* 2.无参数匿名函数
5.* 3.有返回值的匿名函数
6.* 注意:
7.* 可以将匿名函数返回给定义的一个变量
8.*/
9.//有参数匿名函数
10.val value1 = (a : Int) => {
11.  println(a)
12.}
13.value1(1)
14.//无参数匿名函数
15.val value2 = ()=>{
16.  println("我爱尚学堂")
17.}
18.value2()
19.//有返回值的匿名函数
20.val value3 = (a:Int,b:Int) =>{
21.  a+b
22.}
23.println(value3(4,4))

六、嵌套方法

1./**
2.* 嵌套方法
3.* 例如:嵌套方法求5的阶乘
4.*/
5.def fun5(num:Int)={
6.  def fun6(a:Int,b:Int):Int={
7.    if(a == 1){
8.       b
9.    }else{
10.      fun6(a-1,a*b)
11.    }
12.  }
13.  fun6(num,1)
14.}
15.println(fun5(5))

七、偏应用函数

偏应用函数是一种表达式,不需要提供函数需要的所有参数,只需要提供部分,或不提供所需参数。

1./**
2.* 偏应用函数
3.*/
4.def log(date :Date, s :String)= {
5.  println("date is "+ date +",log is "+ s)
6.}
7.
8.val date = new Date()
9.log(date ,"log1")
10.log(date ,"log2")
11.log(date ,"log3")
12.
13.//想要调用log,以上变化的是第二个参数,可以用偏应用函数处理
14.val logWithDate = log(date,_:String)
15.logWithDate("log11")
16.logWithDate("log22")
17.logWithDate("log33")

八、高阶函数

函数的参数是函数,或者函数的返回类型是函数,或者函数的参数和函数的返回类型是函数的函数。

  1. 函数的参数是函数
  2. 函数的返回是函数
  3. 函数的参数和函数的返回是函数
1./**
2.* 高阶函数
3.* 函数的参数是函数 或者函数的返回是函数 或者函数的参数和返回都是函数
4.*/
5.
6.//函数的参数是函数
7.def hightFun(f : (Int,Int) =>Int, a:Int ) : Int = {
8.  f(a,100)
9.}
10.def f(v1 :Int,v2: Int):Int = {
11.  v1+v2
12.}
13.
14.println(hightFun(f, 1))
15.
16.//函数的返回是函数
17.//1,2,3,4相加
18.def hightFun2(a : Int,b:Int) : (Int,Int)=>Int = {
19.  def f2 (v1: Int,v2:Int) :Int = {
20.    v1+v2+a+b
21.  }
22.  f2
23.}
24.println(hightFun2(1,2)(3,4))
25.
26.//函数的参数是函数,函数的返回是函数
27.def hightFun3(f : (Int ,Int) => Int) : (Int,Int) => Int = {
28. f
29.} 
30.println(hightFun3(f)(100,200))
31.println(hightFun3((a,b) =>{a+b})(200,200))
32.//以上这句话还可以写成这样
33.//如果函数的参数在方法体中只使用了一次 那么可以写成_表示
34.println(hightFun3(_+_)(200,200))

九、柯里化函数

1./**
2.* 柯里化函数
3.*/
4.def fun7(a :Int,b:Int)(c:Int,d:Int) = {
5.  a+b+c+d
6.}
7.println(fun7(1,2)(3,4))

http://www.dt0577.cn/news/46527.html

相关文章:

  • 企业搭建网站哪家好网络营销工程师前景
  • eclipse做网站表格济宁百度推广电话
  • 网站备案 有效期三只松鼠营销案例分析
  • 重庆旅游网站建设域名查询ip
  • 北京哪里有专门做网站的地方关键词投放
  • 梧州网站建设今日广州新闻最新消息
  • 个人做企业 网站网站权重
  • 宿州网站建设镇江市网站
  • 做网站导航菜单农产品营销方案
  • 秦皇岛网站建设百度游戏官网
  • 长沙城乡建设网站网络营销十大成功案例
  • 建设网站教程2016百度免费咨询
  • 公司网站怎么做包括什么百度云盘资源共享链接群组链接
  • 广州网站建设公司哪家好企业seo服务
  • 历下区网站建设公司2023疫情最新消息今天
  • 网站建设网站软件有哪些方面淘宝代运营公司排名
  • 私募基金网站开发流程图网络营销有什么方式
  • 有哪些做伦敦金的网站网站搜索优化官网
  • 网站群建设的意义搜狗搜索网
  • 网站建设案例价位企业seo推广的绝密诀窍曝光
  • 广东门户网站建设专业制作网页的公司
  • 上海住房和城乡建设部网站首页做一个网站需要多少钱大概
  • 学什么可以先做网站国家市场监管总局
  • 浏阳网站建设卷云网络网络推广的调整和优化
  • 二级网站建设哪些广告平台留号码
  • 网站怎么做百度云超级会员试用1天
  • 企业网站系统官网网站建设技术
  • 汽车网站开发方案成品网站源码
  • 企业宣传片短视频制作seo推广外包
  • asp.net wordpressseo关键词排名优化怎么样