中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

l5手機(jī)網(wǎng)站模板如何發(fā)布一個(gè)網(wǎng)站

l5手機(jī)網(wǎng)站模板,如何發(fā)布一個(gè)網(wǎng)站,wordpress 自定義字體,灰色色調(diào)的網(wǎng)站Scala編程基礎(chǔ) Scala:簡(jiǎn)潔優(yōu)雅,函數(shù)式編程之美。 今天的目錄有點(diǎn)長(zhǎng) 目錄 Scala編程基礎(chǔ) 1.Scala創(chuàng)建類(lèi) 2.Scala定義變量 3.val與var區(qū)別(考試) 4.scala數(shù)據(jù)類(lèi)型(考試) 5.Scala條件表達(dá)式(選…

?Scala編程基礎(chǔ)

Scala:簡(jiǎn)潔優(yōu)雅,函數(shù)式編程之美。

今天的目錄有點(diǎn)長(zhǎng)

目錄

?Scala編程基礎(chǔ)

1.Scala創(chuàng)建類(lèi)

2.Scala定義變量

3.val與var區(qū)別(考試)

4.scala數(shù)據(jù)類(lèi)型(考試)

5.Scala條件表達(dá)式(選擇題)

6.塊表達(dá)式

7.循環(huán)

1)練習(xí)(菜就多練):

2)代碼改進(jìn)

3)for循環(huán)中加判斷條件

8.Scala函數(shù)式編程(核心)

1)Scala定義方法

①注意:

②練習(xí)1

③練習(xí)2

2)Scala定義函數(shù)

①重要思想

②練習(xí):

③函數(shù)的聲明及調(diào)用

④練習(xí):

⑤Scala中map用法

3)方法轉(zhuǎn)化為函數(shù)


說(shuō)在前面

在Scala中 任何數(shù)據(jù)都是對(duì)象

在Scala中 所有的算數(shù)運(yùn)算符都是方法

1.Scala創(chuàng)建類(lèi)

Scala中將動(dòng)態(tài)方法和靜態(tài)方法分開(kāi)了

Class類(lèi):放動(dòng)態(tài)方法

Object類(lèi):放靜態(tài)方法(static 比如main函數(shù))

2.Scala定義變量

package com.oracle.jt
/*** Object中類(lèi)方法都是靜態(tài)的*/
object Test {def main(args: Array[String]): Unit = {print("山東人民萬(wàn)歲!")//定義變量的格式:[val|var] 變量名[:數(shù)據(jù)類(lèi)型]=值;//scala能自己識(shí)別數(shù)據(jù)類(lèi)型val a=23val b="ff"val c:String="33";var d="wangwu";var e=33.333//var val區(qū)別:val不能重新賦值d="wangfeng" //var可以重新賦值 是真正的變量print(a,b,c,d,e)}
}

3.val與var區(qū)別(考試)

val變量值不能更改 不能重新賦值 var變量的值可以更改

4.scala數(shù)據(jù)類(lèi)型(考試)

Scala 和 Java 一樣,有7種數(shù)值類(lèi)型 Byte、char、Short、Int、Long、Float 和 Double(無(wú)包

裝類(lèi)型)和一個(gè) Boolean 類(lèi)型。沒(méi)有包裝類(lèi)

package com.oracle.jtobject Test2 {def main(args: Array[String]): Unit = {val v1:Int=23;val v2:Float=34.5f;val v3:Double=34.8d;val v4:Long=23;val v5:Short=23;val v6:Byte=23;val v7:Char='f'val v8:Boolean=trueprint(v1,v2,v3,v4,v5,v6,v7,v8)}}

5.Scala條件表達(dá)式(選擇題)

條件表達(dá)式:
在給一個(gè)變量賦值的時(shí)候 大家有沒(méi)有見(jiàn)到過(guò)一個(gè)變量的取值
在不同的條件下 變量的值是不一樣的

如果結(jié)果不符合條件表達(dá)式 那么 控制臺(tái)將輸出 ( )?

package com.oracle.jtobject Test3 {def main(args: Array[String]): Unit = {//條件表達(dá)式://在給一個(gè)變量賦值的時(shí)候 大家有沒(méi)有見(jiàn)到過(guò)一個(gè)變量的取值//在不同的條件下 變量的值是不一樣的var b=23var a=if(b>20) 56 else 90;println(a)val c=if(b>50) 90print(c)//如果不符合條件 打印括號(hào)()}
}

package com.oracle.jtobject Test3 {def main(args: Array[String]): Unit = {//條件表達(dá)式://在給一個(gè)變量賦值的時(shí)候 大家有沒(méi)有見(jiàn)到過(guò)一個(gè)變量的取值//在不同的條件下 變量的值是不一樣的val str="aa"val f=if(str.equals("aa")) "fff" else "sss"print(f)//如果不符合條件 打印括號(hào)()}
}

package com.oracle.jtobject Test3 {def main(args: Array[String]): Unit = {//條件表達(dá)式://在給一個(gè)變量賦值的時(shí)候 大家有沒(méi)有見(jiàn)到過(guò)一個(gè)變量的取值//在不同的條件下 變量的值是不一樣的val a=2;val b=3;val c=if(a+b==5) 66 else 99;print(c)//如果不符合條件 打印括號(hào)()}
}

6.塊表達(dá)式

在Scala中 最后一行變量是用來(lái)賦值 或者當(dāng)作返回值的

package com.oracle.jtobject Test4 {def main(args: Array[String]): Unit = {val a={//print(0.to(10).toBuffer)var b=0//求0-10的累加和for(a <- 0.to(10)){b=b+a}b // b放在for循環(huán)外 表示把b的值賦給a} //{} 塊print(a)}}

7.循環(huán)

Scala中 for循環(huán)是用來(lái)遍歷集合的

后面只能跟集合

Java中for循環(huán)是用來(lái)控制循環(huán)次數(shù)的

package com.oracle.jtobject Test6 {def main(args: Array[String]): Unit = {var a=Array(3,4,5,6,7)//Array()就是Java的數(shù)組//for(變量名<-集合){}for(elm<-a){println(elm)}}}

在Scala中 任何數(shù)據(jù)都是對(duì)象

//如果我想Java那樣用for循環(huán)生成一串?dāng)?shù)字 那就只能使用下面的方法//var b=Array(0,1,2,3,4,5,6,7,8,9)var b1=0.until(10) //產(chǎn)生左閉右開(kāi)的區(qū)間數(shù)字var b2=0.to(10) //產(chǎn)生閉開(kāi)區(qū)間數(shù)字print(b1)println(b2)

1)練習(xí)(菜就多練):

求1-100累加和 求1-100偶數(shù)和

package com.oracle.jtobject Test7 {def main(args: Array[String]): Unit = {val sum= {var s=0var s1=0for(sum<-0.to(100)){s=s+sum}s}println(sum)val sum2={var s= 0for(sum2<-0.to(100)){if(sum2%2==0) s=s+sum2 else s=s+0}s}print(sum2)}}

2)代碼改進(jìn)

package com.oracle.jtobject Test7 {def main(args: Array[String]): Unit = {val sum= {var s=0var s1=0for(sum<-0.to(100)){s=s+sum}s}println("1-100的累加和為:"+sum)val sum2={var s= 0for(sum2<-0.to(100)){if(sum2%2==0) s=s+sum2 else s=s+0}s}println("1-100的偶數(shù)和為:"+sum2)val sum3={var s= 0for(sum3<-0.to(100)){if(sum3%2==1) s=s+sum3 else s=s+0}s}print("1-100的奇數(shù)和為:"+sum3)}
}

3)for循環(huán)中加判斷條件

在for循環(huán)中 我們可以加判斷條件 這樣的話(huà) 對(duì)于求偶數(shù)和就變得更簡(jiǎn)單了

package com.oracle.jtobject Test8 {def main(args: Array[String]): Unit = {val a=1.to(10)var b=0for(elm <- a;if(elm%2==0)){b=b+elmprintln(elm)}print(b)}
}

8.Scala函數(shù)式編程(核心)

在Scala中 所有的算數(shù)運(yùn)算符都是方法

package com.oracle.jtobject Test9 {def main(args: Array[String]): Unit = {val a=22val b=13val c=a.+(b)val d=a.*(b)val e=a./(b)val f=a.-(b)val g=a.%(b)print(c,d,e,f,g)}}

1)Scala定義方法

package com.oracle.jtobject Test10 {//Scala定義方法的格式/*** def 方法名 (a:數(shù)據(jù)類(lèi)型,b:數(shù)據(jù)類(lèi)型....) [={}]* []表示可以省略* 關(guān)于大括號(hào) 如果就一行代碼 大括號(hào)可以省略* 關(guān)于等號(hào) 如果沒(méi)有返回值 可以省略*/// 一行代碼 可以省略 {}def add()=println("山東人民萬(wàn)歲")//有參數(shù) 無(wú)返回值 可以省略 = def add(a:Int,b:Double){val c=a+bprintln(c)}//有返回值 寫(xiě) =def add(a:Int,b:Double,c:Int)={val d=a+b+cif(d>0) d else 13}def main(args: Array[String]): Unit = {add() //靜態(tài)方法可以直接調(diào)用add(12,34.7)val res=add(12,34.6,78) //有返回值 接收一下print(res)}}

①注意:

//有返回值 寫(xiě) =
def add(a:Int,b:Double,c:Int): Unit={val d=a+b+cif(d>0) d else 13
}
//有返回值 寫(xiě) =
def add(a:Int,b:Double,c:Int)={val d=a+b+cif(d>0) d else 13
}

②練習(xí)1

在主方法中傳遞一個(gè)帶 , 的字符串給普通方法 普通方法返回以 , 為分隔符之后的數(shù)組?

在主方法中打印數(shù)組中的每個(gè)元素

package com.oracle.jtobject Test11 {def main(args: Array[String]): Unit = {val s="jhw,yyq"val res=splt(s)for(elm <- res){println(elm)}}def splt(s:String):Array[String]={val res=s.split(",")res}}

③練習(xí)2

在主方法中 創(chuàng)建A對(duì)象 為A的對(duì)象賦值 傳遞A對(duì)象給普通方法 在普通方法中 打印A對(duì)象中的值

package com.oracle.jtclass A {private var Sname: String=_;private var Ssex: String = _;def getSname():String=Snamedef setSname(name:String):String={Sname=nameSname //返回姓名值}def getSsex():String=Ssexdef setSsex(sex:String):String={Ssex=sexSsex //返回性別值}
}package com.oracle.jtobject Test12 {def prt(a:A)={val name=a.getSname()val sex=a.getSsex()println(name)println(sex)}def main(args: Array[String]): Unit = {val a=new Aa.setSname("jhw")a.setSsex("nan")prt(a)}
}

2)Scala定義函數(shù)

①重要思想

目標(biāo):

1.學(xué)會(huì)定義函數(shù)(思想:函數(shù)是變量 函數(shù)是方法)

val 函數(shù)名=(a:參數(shù)類(lèi)型,b:參數(shù)類(lèi)型....)=>{代碼塊 返回值}

2.學(xué)會(huì)調(diào)用函數(shù)

函數(shù)名(參數(shù)值1,參數(shù)值2....)

為什么說(shuō)Scala的一行代碼抵得上Java的很多行代碼?

因?yàn)镾cala的代碼都已經(jīng) 以函數(shù)的形式寫(xiě)好了

可以直接調(diào)用使用

效果如下:

package com.oracle.jtobject Test13 {//函數(shù)的定義:val 函數(shù)名=(a:參數(shù)類(lèi)型,b:參數(shù)類(lèi)型....)=>{代碼塊 返回值}val add=(a:Int,b:Int)=>a+bdef main(args: Array[String]): Unit = {//函數(shù)的調(diào)用:函數(shù)名(參數(shù)值1,參數(shù)值2....)val d=add(13,45)println(d)}
}

②練習(xí):

用函數(shù)實(shí)現(xiàn)下面的需求:

在主方法中傳遞一個(gè)帶 , 的字符串給普通方法 普通方法返回以 , 為分隔符之后的數(shù)組?

在主方法中打印數(shù)組中的每個(gè)元素

package com.oracle.jtobject Test14 {val splitString=(s:String)=>{val res:Array[String]=s.split(",")for(elm<-res){println(elm)}}def main(args: Array[String]): Unit = {var s="a,b,c,d,e"splitString(s)}
}

③函數(shù)的聲明及調(diào)用

package com.oracle.jtobject Test13 {//函數(shù)的定義:val 函數(shù)名=(a:參數(shù)類(lèi)型,b:參數(shù)類(lèi)型....)=>{代碼塊 返回值}//val fun=(a:String,b:String,c:String)=>a+b+c//val add=(a:Int,b:Int)=>a+b//函數(shù)是變量 現(xiàn)在把它傳遞給一個(gè)方法//函數(shù)聲明:把函數(shù)實(shí)現(xiàn)變?yōu)閰?shù)類(lèi)型和返回值類(lèi)型 然后起個(gè)名字就可以了def myAdd(f:(Int,Int)=>Int): Int ={//聲明以后我們就可以調(diào)用了val res=f(12,23)res//直接寫(xiě)f(12,23)也沒(méi)錯(cuò) Scala簡(jiǎn)潔}def strconat(s:(String,String,String)=>String):String={val a="你"val b="好"val c="壞"s(a,b,c)}def main(args: Array[String]): Unit = {//函數(shù)的調(diào)用:函數(shù)名(參數(shù)值1,參數(shù)值2....)//val d=add(13,45)//println(d)//函數(shù)的實(shí)現(xiàn)val res1=myAdd((a:Int,b:Int)=>a+b) //方法右返回值 接收一下//val res1=myAdd(add)println(res1)val res2=strconat((a:String,b:String,c:String)=>a+b+c)//val res2=strconat(fun)println(res2)}
}

練習(xí):寫(xiě)出 a-b 的函數(shù)式編程 (使用函數(shù)的聲明和實(shí)現(xiàn))

package com.oracle.jtobject Test15 {def mySub(f:(Int,Int)=>Int)={val a=12;val b=23;f(a,b)}def main(args: Array[String]): Unit = {val res = mySub((a: Int, b: Int) => a + b)print(res)}}

④練習(xí):

定義一個(gè)方法 包括一個(gè)參數(shù) 參數(shù)類(lèi)型是函數(shù)

函數(shù)有兩個(gè)參數(shù) Int String?

返回Int和String的拼接

在主方法中 調(diào)用方法 并傳遞函數(shù)實(shí)現(xiàn)

package com.oracle.jtobject Test16 {def strAdd(f:(Int,String)=>String)={f(521,"一生一世")
//    val a=521
//    val b="一生一世"
//    a+b}def intAdd(f:(Int,String)=>Int)={val a=521val b="一生一世"a+b}def main(args: Array[String]): Unit = {val res1=strAdd((a:Int,b:String)=>a+b)println(res1)val res2=strAdd((a:Int,b:String)=>a+b)print(res2)}}

package com.oracle.jtobject Test17 {def splitStr(f:(String)=>Array[String])={f("a,c,d,e")}def main(args: Array[String]): Unit = {//在實(shí)現(xiàn)的時(shí)候 我們可以不寫(xiě)類(lèi)型val res=splitStr((f:String)=>f.split(","))for(elm<-res){println(elm)}val array=Array[String]("a,b","c,d","e,f")val a = array.map(s => s.split(","))println(a.toBuffer)}
}

⑤Scala中map用法

map是用來(lái)對(duì)數(shù)組中的每個(gè)元素做一對(duì)一類(lèi)型轉(zhuǎn)換的

array.map的參數(shù)是String 返回值可以是任何類(lèi)型

我們可以自己定義一下map的內(nèi)容

package com.oracle.jtimport scala.collection.mutable.ArrayBufferclass ArrayDemo {val array=new ArrayBuffer[String]()def add(s:String): Unit ={array.append(s)}def map(f:(String => Array[String])): ArrayBuffer[Array[String]] ={val cvtArray=new ArrayBuffer[Array[String]]()for (elm<-array){cvtArray.append(f(elm))}cvtArray}}package com.oracle.jtobject Test20 {def main(args: Array[String]): Unit = {val array=new ArrayDemo()array.add("a,d")array.add("c,e")array.add("g,h")val res=array.map(x=>x.split(","))println(res)}}

我們也可以直接用 因?yàn)镾cala已經(jīng)給我們寫(xiě)好了

 val array1=new ArrayBuffer[String]()array1.append("1,2")array1.append("3,5")array1.append("3,5")val res1 = array1.map(s => s.split(","))println(res1)

3)方法轉(zhuǎn)化為函數(shù)

package com.oracle.jtobject Test21 {def add(a:Int,b:Int)=a+bdef main(args: Array[String]): Unit = {//把方法轉(zhuǎn)換成函數(shù)val fun=add _val res=fun(213,456)println(res)}}

http://www.risenshineclean.com/news/42761.html

相關(guān)文章:

  • 石家莊微信網(wǎng)站建設(shè)公司互聯(lián)網(wǎng)營(yíng)銷(xiāo)師考證多少錢(qián)
  • 先進(jìn)的網(wǎng)站建設(shè)百度推廣客服電話(huà)人工服務(wù)
  • 中小型企業(yè)網(wǎng)站的設(shè)計(jì)與開(kāi)發(fā)百度搜索競(jìng)價(jià)
  • 重慶網(wǎng)站公司淘寶指數(shù)網(wǎng)站
  • wordpress mb_strimwidth htmlseo優(yōu)化工具大全
  • 網(wǎng)站制作策劃今日熱點(diǎn)
  • 南寧微信網(wǎng)站制作網(wǎng)頁(yè)制作軟件推薦
  • 去哪兒網(wǎng)站開(kāi)發(fā)中國(guó)國(guó)家培訓(xùn)網(wǎng)靠譜嗎
  • 福州手機(jī)網(wǎng)站建設(shè)最新國(guó)內(nèi)新聞事件今天
  • 網(wǎng)站店鋪分布圖怎么做網(wǎng)絡(luò)營(yíng)銷(xiāo)專(zhuān)業(yè)是學(xué)什么的
  • java做的k線(xiàn)圖網(wǎng)站源碼下載seo搜索引擎是什么
  • 為什么做電影網(wǎng)站沒(méi)有流量嗎東莞百度seo電話(huà)
  • 做網(wǎng)站搞什么流量百度競(jìng)價(jià)點(diǎn)擊軟件奔奔
  • 網(wǎng)站是如何建立的山東做網(wǎng)站
  • 網(wǎng)站企業(yè)備案代理短視頻拍攝剪輯培訓(xùn)班
  • 溫州網(wǎng)站制作多少錢(qián)谷歌google 官網(wǎng)下載
  • 手機(jī)html5網(wǎng)站源碼廣告投放的方式有哪些
  • 深圳網(wǎng)站建設(shè)培訓(xùn)班深圳最新通告今天
  • 技術(shù)支持:淄博網(wǎng)站建設(shè)優(yōu)化設(shè)計(jì)三年級(jí)上冊(cè)語(yǔ)文答案
  • 山東省建設(shè)工程招標(biāo)中心網(wǎng)站當(dāng)日網(wǎng)站收錄查詢(xún)統(tǒng)計(jì)
  • 網(wǎng)站建設(shè)需求分析寫(xiě)什么茶葉seo網(wǎng)站推廣與優(yōu)化方案
  • 網(wǎng)站程序組成seo搜狗排名點(diǎn)擊
  • 辛集seo網(wǎng)站優(yōu)化電話(huà)靠譜的免費(fèi)建站
  • 建立手機(jī)個(gè)人網(wǎng)站營(yíng)銷(xiāo)網(wǎng)站建設(shè)制作
  • 視頻資源的網(wǎng)站怎么做站長(zhǎng)資訊
  • 網(wǎng)站建設(shè)課程設(shè)計(jì)內(nèi)容淘寶店鋪轉(zhuǎn)讓價(jià)格表
  • wordpress評(píng)論框文件采集站seo課程
  • 自己做網(wǎng)站外包百度熱搜高考大數(shù)據(jù)
  • 企業(yè)做網(wǎng)站需要什么軟件百度品牌廣告收費(fèi)標(biāo)準(zhǔn)
  • 網(wǎng)站制作預(yù)付款會(huì)計(jì)分錄小程序運(yùn)營(yíng)推廣公司