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

做网站 给源代码河池网站seo

做网站 给源代码,河池网站seo,网站防红链接怎么做,西安购物网站建设1. 方法 在scala中的操作符都被当成方法存在,比如说、-、*、/ 12就是1.(2)的调用, 2.0 是doule类型,强调用Int类型的写法为1.(2:Int) 1.1 方法的声明和使用 定义方法的语法: def 方法名([变量:变量类型&#xff…

1. 方法

在scala中的操作符都被当成方法存在,比如说+、-、*、/

1+2就是1.+(2)的调用,

2.0 是doule类型,强调用Int类型的写法为1.+(2:Int)

1.1 方法的声明和使用

定义方法的语法:

def 方法名([变量:变量类型,变量:变量类型]):返回值类型={方法体}

其中:

在scala 中,方法里面的最后一个表达式的值就是方法的返回值,不需要return 返回;

示例:

定义无参无返回值的方法:

// 定义无参无返回值的方法
scala> def say():Unit = {println("say hello")}
say: ()Unit
scala> say()
say hello
// 简化过程
scala> def say():Unit = {println("say hello")}
say: ()Unit
// 方法体有一个语句,省略{}
scala> def say():Unit = println("say hello")
say: ()Unit
// 方法返回值可以由方法体返回结果类型推测
scala> def say() = println("say hello")        
say: ()Unit
// 方法形参列表是空, 可省略()
scala> def say = println("say hello")
say: Unit
scala> say
say hello
scala> say()
<console>:13: error: Unit does not take parameterssay()
// 带有返回值的方法
def add(a:Int, b:Int):Int={val c = a + b; return c}

定义带有有参有返回值方法:

// 定义带有有参有返回值方法
scala> def add(a:Int, b:Int):Int={val c = a + b; return c}
add: (a: Int, b: Int)Int
scala> add(4,5)
res8: Int = 9
// 简化流程
scala> def add(a:Int, b:Int):Int={val c = a + b; return c}
add: (a: Int, b: Int)Int
// scala 不建议用return返回方法结果,默认最后一个就是方法的返回值
scala> def add(a:Int, b:Int):Int={val c = a + b; c}
add: (a: Int, b: Int)Int
// 去掉中间变量c
scala> def add(a:Int, b:Int):Int={a + b}
add: (a: Int, b: Int)Int
// 方法体有一个语句,省略{}
scala> def add(a:Int, b:Int):Int=a + b
add: (a: Int, b: Int)Int
// 方法返回值可以由方法体返回结果类型推测
scala> def add(a:Int, b:Int)=a + b
add: (a: Int, b: Int)Int
scala> add(4,5)
res9: Int = 9

方法的调用:

object M1 {def say(name:String) = {println(s"say ${name}")}def add(a:Int, b:Int) = a + bdef main(args: Array[String]): Unit = {// 普通调用M1.say("hainiu")// 中缀方法调用M1 say "hainiu"// 大括号调用,当只有一个入参时才能用M1 say {"hainiu"}M1.add(4,5)// 中缀方法调用M1 add (4,5)}
}

递归方法必须加返回值类型

scala> def calculate(number:Int):Int = {| if(number == 1)| 1| else| number*calculate(number-1)| }
calculate: (number: Int)Intscala> calculate(5)
res14: Int = 120//文件夹递归方式查询def listFiles(path:String):Unit = {val file = new File(path)if(file.isFile){println(file.getPath)}else{println(file.getPath)val list = file.list()for(p<-list){listFiles(path+"/"+p)}}}

可变参数

scala> def sum(x:Int*)={| var sum = 0| for(i<-x)| sum += i| sum| }
sum: (x: Int*)Intscala> sum(1,2,3)
res15: Int = 6scala> sum(1,2,3,4,5)
res16: Int = 15scala> def sum(x:Int,y:Int*)={| var sum = 0| for(i<-y)| sum += i| x * sum| }
sum: (x: Int, y: Int*)Intscala> sum(2,1,2,3)

2. 函数

在 java 中方法和函数是一个意思,在 scala 中方法和函数是两种含义。

方法:属于类或对象的成员

函数:是对象

在 scala 中,函数是一等公民。可以在任何地方定义,在函数内或函数外,可以作为函数的参数和返回值;函数还可以赋给变量。

函数声明:

val 变量名:[变量类型1,变量类型2 => 函数体返回类型 ] = ([变量:变量类型,变量:变量类型]) => 函数体

示例:

// 函数本身是没有名字的--匿名函数
// function2 是 函数有 两个输入参数 和 一个输出, 本例是 两个Int输入,一个Int输出
scala> (a:Int, b:Int) => a + b
res10: (Int, Int) => Int = <function2>
scala> res10(4,5)
res11: Int = 9
// 把匿名函数赋给变量,这个变量名称就成了函数名称
scala> val add:(Int,Int)=>Int = (a:Int, b:Int) => a + b
add: (Int, Int) => Int = <function2>
scala> add(4,5)
res12: Int = 9

函数的结果做为方法的参数:

示例

// 定义周长函数
val perimeter = (a:Int,b:Int) => (a+b) *2
// 定义面积函数
val area = (a:Int, b:Int) => a*b
// 定义求和方法
def add(a:Int, b:Int) = a+b
// 计算长方形周长和面积的和
println(add(perimeter(4,5), area(4,5)))

函数作为参数和返回值:

scala> add2
res22: (Int, Int) => Int = $Lambda$1133/801476373@59919f37scala> val add = add2
add: (Int, Int) => Int = $Lambda$1133/801476373@59919f37scala> add(100,200)
res23: Int = 300scala> def calculate(x:Int,y:Int) = x+y
calculate: (x: Int, y: Int)Intscala> def calculate(x:Int,y:Int,f:(Int,Int)=>Int) = f(x,y)
calculate: (x: Int, y: Int, f: (Int, Int) => Int)Intscala> calculate(10,20,add)
res24: Int = 30scala> def sub(a:Int,b:Int) = a-b
sub: (a: Int, b: Int)Intscala> val sub = (a:Int,b:Int) => a-b
sub: (Int, Int) => Int = $Lambda$1137/1087688958@784ceacbscala> calculate(1,2,sub)
res25: Int = -1scala> def getFunc() = {| val func = (x:Int,y:Int) => x+y| func| }
getFunc: ()(Int, Int) => Intscala> getFunc()(1,2)
res26: Int = 3scala> def getFunc(a:Int,b:Int) = {| val func = (x:Int) => a*x +b| func| }
getFunc: (a: Int, b: Int)Int => Intscala> getFunc(2,1)(10)
res27: Int = 21

匿名函数

scala> def calculate(x:Int,y:Int) = x+y
calculate: (x: Int, y: Int)Intscala> def calculate(x:Int,y:Int,f:(Int,Int)=>Int) = f(x,y)
calculate: (x: Int, y: Int, f: (Int, Int) => Int)Intscala> val add = (x:Int,y:Int) => x+y
add: (Int, Int) => Int = $Lambda$1044/989321301@77049094scala> calculate(10,20,add)
res9: Int = 30scala> calculate(10,20,(x:Int,y:Int)=> x+y)
res10: Int = 30scala> (x:Int,y:Int) => x+y
res11: (Int, Int) => Int = $Lambda$1068/1578712821@106c988scala> res11(200,300)
res12: Int = 500scala> calculate(10,20,(x,y)=>x+y)
res13: Int = 30scala> (x,y)=> x+y
<console>:1: error: ';' expected but '=>' found.(x,y)=> x+y^

方法转换成函数

1)用空格下划线的方式

# 定义方法def add_def(a:Int,b:Int) = a + b# 方法转函数,用空格下划线的方式val add_func = add_def<空格>_

2)也可以把方法当参数使用,这也因为scala会隐式的把方法转换成函数,但并不是直接支持方法当参数的模式,只是做了隐式的转换,这种函数的转换分两种显示用空格_和隐式的,这也体现了scala灵活的地方。

cala> def add(x:Int,y:Int) = x+y
add: (x: Int, y: Int)Intscala> add 
<console>:13: error: missing argument list for method add
Unapplied methods are only converted to functions when a function type is expected.
You can make this conversion explicit by writing `add _` or `add(_,_)` instead of `add`.add^
scala> add _
res16: (Int, Int) => Int = $Lambda$1076/287628665@335cdd2scala> calculate(1,2,add _)
res17: Int = 3scala> calculate(1,2,add)
res18: Int = 3

文章转载自:
http://archesporium.rbzd.cn
http://viewer.rbzd.cn
http://choral.rbzd.cn
http://chief.rbzd.cn
http://greeting.rbzd.cn
http://infatuation.rbzd.cn
http://upward.rbzd.cn
http://solecist.rbzd.cn
http://encephalopathy.rbzd.cn
http://carbocyclic.rbzd.cn
http://epiploon.rbzd.cn
http://algidity.rbzd.cn
http://geospace.rbzd.cn
http://assumedly.rbzd.cn
http://dialectic.rbzd.cn
http://harewood.rbzd.cn
http://coadjutor.rbzd.cn
http://inflator.rbzd.cn
http://seventieth.rbzd.cn
http://allier.rbzd.cn
http://cpe.rbzd.cn
http://pompom.rbzd.cn
http://ambience.rbzd.cn
http://dissemble.rbzd.cn
http://hela.rbzd.cn
http://frothily.rbzd.cn
http://paternalistic.rbzd.cn
http://protocontinent.rbzd.cn
http://paltrily.rbzd.cn
http://altocumulus.rbzd.cn
http://diacritical.rbzd.cn
http://beano.rbzd.cn
http://qualified.rbzd.cn
http://poseur.rbzd.cn
http://cathedral.rbzd.cn
http://bpd.rbzd.cn
http://rheinland.rbzd.cn
http://metacompilation.rbzd.cn
http://texian.rbzd.cn
http://strawhat.rbzd.cn
http://naima.rbzd.cn
http://dramaturge.rbzd.cn
http://semimute.rbzd.cn
http://tapsalteerie.rbzd.cn
http://sinopite.rbzd.cn
http://mutualism.rbzd.cn
http://phenakistoscope.rbzd.cn
http://tricker.rbzd.cn
http://tasses.rbzd.cn
http://fogey.rbzd.cn
http://ravening.rbzd.cn
http://pia.rbzd.cn
http://consolute.rbzd.cn
http://coverlet.rbzd.cn
http://handbookinger.rbzd.cn
http://nhl.rbzd.cn
http://dextrocardia.rbzd.cn
http://rediscovery.rbzd.cn
http://deionize.rbzd.cn
http://inexact.rbzd.cn
http://archegone.rbzd.cn
http://osculatory.rbzd.cn
http://alban.rbzd.cn
http://unharmed.rbzd.cn
http://azrael.rbzd.cn
http://intermodulation.rbzd.cn
http://oxidization.rbzd.cn
http://deceive.rbzd.cn
http://nazarene.rbzd.cn
http://robustious.rbzd.cn
http://diatomite.rbzd.cn
http://sprit.rbzd.cn
http://gnp.rbzd.cn
http://jetborne.rbzd.cn
http://waxwork.rbzd.cn
http://kemalism.rbzd.cn
http://zoogeographer.rbzd.cn
http://araliaceous.rbzd.cn
http://corticotropin.rbzd.cn
http://salina.rbzd.cn
http://sleepful.rbzd.cn
http://nephrogenic.rbzd.cn
http://trilogy.rbzd.cn
http://amy.rbzd.cn
http://sugarhouse.rbzd.cn
http://heckuva.rbzd.cn
http://grogshop.rbzd.cn
http://analecta.rbzd.cn
http://orgiastic.rbzd.cn
http://shebang.rbzd.cn
http://ulcer.rbzd.cn
http://aviatic.rbzd.cn
http://gastroschisis.rbzd.cn
http://increscent.rbzd.cn
http://prelatic.rbzd.cn
http://monopitch.rbzd.cn
http://procellous.rbzd.cn
http://decrement.rbzd.cn
http://oppression.rbzd.cn
http://macrocell.rbzd.cn
http://www.15wanjia.com/news/67640.html

相关文章:

  • 深圳市建设工程交易中心网站100种宣传方式
  • 怎么看网站点击量网站排名优化怎样做
  • 龙岗做网站公司聊城seo
  • 南宁自助模板建站网站建设公司企业网站
  • 教做缝纫的网站网站代运营多少钱一个月
  • 用数据库做动态网站王通seo教程
  • 个人资料库网站怎么做数据库营销
  • 做葡萄牙语网站网站seo方案策划书
  • 百度做自己的网站上首页seo
  • 马拉松网站建设北京百度seo公司
  • 做介绍的英文网站论坛软文案例
  • 自己做的网页怎么上传到网站巨量引擎广告投放平台代理
  • 西宁手机网站建设搜索引擎优化理解
  • 包头做网站公司哪家好今天发生了什么重大新闻
  • 网站备案 公安局成都官网seo服务
  • 平面设计培训机构排行班级优化大师简介
  • 做淘宝必备的网站全网营销式网站
  • 商品推广软文范例300字seo网站查询
  • 线上商城模板营销网站seo推广
  • 在自己网站做支付可以吗网络seo优化公司
  • 网站中英文切换怎么做做一个简单网页
  • 做网站的几个软件2023年广州疫情最新消息
  • 网站建设咋做seo全网优化推广
  • 云服务器使用教程长沙靠谱关键词优化服务
  • 企业网站管理系统哪个好鞍山网络推广
  • 小视频网站开发流程图郑州seo优化阿亮
  • 自己做的网站怎么推广优化大师win10下载
  • 做车贷的网站seo内容优化方法
  • 重庆快速网站推广郑州百度分公司
  • wordpress 文章过滤网站优化排名易下拉系统