精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

Scala的操作符:任何方法都可以是操作符

開(kāi)發(fā) 后端
本文節(jié)選自Martin Odersky,Lex Spoon和Bill Venners所著,Regular翻譯的《Programming in Scala》的第五章。Scala是一種針對(duì) JVM 將函數(shù)和面向?qū)ο蠹夹g(shù)組合在一起的編程語(yǔ)言。

Scala為它的基本類(lèi)型提供了豐富的操作符集。這些操作符實(shí)際只是作用在普通方法調(diào)用上華麗的語(yǔ)法。例如,1 + 2與(1).+(2)其實(shí)是一回事。換句話說(shuō),就是Int類(lèi)包含了叫做+的方法,它帶一個(gè)Int參數(shù)并返回一個(gè)Int結(jié)果。這個(gè)+方法在兩個(gè)Int相加時(shí)被調(diào)用:

51CTO編輯推薦:Scala編程語(yǔ)言專(zhuān)題

  1. scala> val sum = 1 + 2 // Scala調(diào)用了(1).+(2)  
  2. sum: Int = 3 
想要證實(shí)這點(diǎn),可以把表達(dá)式顯式地寫(xiě)成方法調(diào)用:

  1. scala> val sumMore = (1).+(2)  
  2. sumMore: Int = 3 
而真正的事實(shí)是,Int包含了許多帶不同的參數(shù)類(lèi)型的重載:overload的+方法。重載的方法有同樣的名稱和不同的參數(shù)類(lèi)型。例如,Int還有另一個(gè)也叫+的方法參數(shù)和返回類(lèi)型為L(zhǎng)ong。如果你把Long加到Int上,這個(gè)替換的+方法就將被調(diào)用:

  1. scala> val longSum = 1 + 2L // Scala調(diào)用了(1).+(2L)  
  2. longSum: Long = 3 
符號(hào)+是操作符——更明確地說(shuō),是中綴操作符。操作符標(biāo)注不僅限于像+這種其他語(yǔ)言里看上去像操作符一樣的東西。你可以把任何方法都當(dāng)作操作符來(lái)標(biāo)注。例如,類(lèi)String有一個(gè)方法indexOf帶一個(gè)Char參數(shù)。indexOf方法搜索String里***次出現(xiàn)的指定字符,并返回它的索引或-1如果沒(méi)有找到。你可以把indexOf當(dāng)作中綴操作符使用,就像這樣:

  1. scala> val s = "Hello, world!" 
  2. s: java.lang.String = Hello, world!  
  3. scala> s indexOf 'o' // Scala調(diào)用了s.indexOf(’o’)  
  4. res0: Int = 4 
另外,String提供一個(gè)重載的indexOf方法,帶兩個(gè)參數(shù),分別是要搜索的字符和從哪個(gè)索引開(kāi)始搜索。(前一個(gè)indexOf方法開(kāi)始于索引零,也就是String開(kāi)始的地方。)盡管這個(gè)indexOf方法帶兩個(gè)參數(shù),你仍然可以用操作符標(biāo)注的方式使用它。不過(guò)當(dāng)你用操作符標(biāo)注方式調(diào)用帶多個(gè)參數(shù)的方法時(shí),這些參數(shù)必須放在括號(hào)內(nèi)。例如,以下是如何把另一種形式的indexOf當(dāng)作操作符使用的例子(接前例):

  1. scala> s indexOf ('o'5// Scala調(diào)用了s.indexOf(’o’, 5)  
  2. res1: Int = 8 
任何方法都可以是操作符

Scala里的操作符不是特殊的語(yǔ)言語(yǔ)法:任何方法都可以是操作符。使用方法的方式使它成為操作符。如果寫(xiě)成s.indexOf('o'),indexOf就不是操作符。不過(guò)如果寫(xiě)成,s indexOf 'o',那么indexOf就是操作符了,因?yàn)槟阋圆僮鞣麡?biāo)注方式使用它。

目前為止,你已經(jīng)看到了中綴:infix操作符標(biāo)注的例子,也就是說(shuō)調(diào)用的方法位于對(duì)象和傳遞給方法的參數(shù)或若干參數(shù)之間,如“7 + 2”。Scala還有另外兩種操作符標(biāo)注:前綴和后綴。前綴標(biāo)注中,方法名被放在調(diào)用的對(duì)象之前,如,-7里的‘-’。后綴標(biāo)注中,方法放在對(duì)象之后,如,“7 toLong”里的“toLong”。

與中綴操作符——操作符帶后兩個(gè)操作數(shù),一個(gè)在左一個(gè)在右——相反,前綴和后綴操作符都是一元:unary的:它們僅帶一個(gè)操作數(shù)。前綴方式中,操作數(shù)在操作符的右邊。前綴操作符的例子有-2.0,!found和~0xFF。與中綴操作符一致,這些前綴操作符是在值類(lèi)型對(duì)象上調(diào)用方法的簡(jiǎn)寫(xiě)方式。然而這種情況下,方法名在操作符字符上前綴了“unary_”。例如,Scala會(huì)把表達(dá)式-2.0轉(zhuǎn)換成方法調(diào)用“(2.0).unary_-”。你可以輸入通過(guò)操作符和顯式方法名兩種方式對(duì)方法的調(diào)用來(lái)演示這一點(diǎn):

  1. scala> -2.0             // Scala調(diào)用了(2.0).unary_-  
  2. res2: Double = -2.0 
  3. scala> (2.0).unary_-  
  4. res3: Double = -2.0 
可以當(dāng)作前綴操作符用的標(biāo)識(shí)符只有+,-,!和~。因此,如果你定義了名為unary_!的方法,就可以像!p這樣在合適的類(lèi)型值或變量上用前綴操作符方式調(diào)用這個(gè)方法。但是如果你定義了名為unary_*的方法,就沒(méi)辦法用成前綴操作符了,因?yàn)?不是四種可以當(dāng)作前綴操作符用的標(biāo)識(shí)符之一。你可以像平常那用調(diào)用它,如p.unary_*,但如果嘗試像*p這么調(diào)用,Scala就會(huì)把它理解為*.p,這或許就不會(huì)是你想當(dāng)然的了!然而,不是一點(diǎn)兒希望都沒(méi)有。仍然有極微弱的機(jī)會(huì),讓你的帶有*p的程序或許能像C++那樣被編譯。

后綴操作符是不用點(diǎn)或括號(hào)調(diào)用的不帶任何參數(shù)的方法。Scala里,你可以舍棄方法調(diào)用的空括號(hào)。例外就是如果方法帶有副作用就加上括號(hào),如println(),不過(guò)如果方法沒(méi)有副作用就可以去掉括號(hào),如String上調(diào)用的toLowerCase:

  1. scala> val s = "Hello, world!" 
  2. s: java.lang.String = Hello, world!  
  3. scala> s.toLowerCase  
  4. res4: java.lang.String = hello, world!  
后面的這個(gè)例子里,方法沒(méi)帶參數(shù),或者還可以去掉點(diǎn),采用后綴操作符標(biāo)注方式:

  1. scala> s toLowerCase  
  2. res5: java.lang.String = hello, world!  
例子里,toLowerCase被當(dāng)作操作數(shù)s上的后綴操作符。

因此要想知道Scala的值類(lèi)型里你可以用哪些操作符,所有需要做的就是在Scala的API文檔里查詢定義在值類(lèi)型上的方法。

【相關(guān)閱讀】

  1. Scala的基本類(lèi)型及文本化
  2. Scala程序及其Application特質(zhì)
  3. Scala程序中的分號(hào)推斷和Singleton對(duì)象
  4. 學(xué)習(xí)Scala類(lèi)的定義,字段和方法
  5. 學(xué)習(xí)Scala腳本:從文件里讀取行記錄
責(zé)任編輯:book05 來(lái)源: Artima
相關(guān)推薦

2009-07-21 12:47:04

Scala私有字段定義操作符

2021-10-31 18:59:55

Python操作符用法

2010-07-14 14:55:07

Perl操作符

2009-08-19 17:26:28

C# 操作符

2010-07-19 11:00:24

Perl操作符

2011-04-08 16:26:14

JavaScript

2010-07-14 14:30:31

Perl操作符

2009-09-15 17:16:58

LINQ查詢操作符

2012-02-06 09:13:23

LINQ

2010-07-14 14:18:51

Perl操作符

2009-09-16 09:09:23

Linq Contai

2009-12-11 10:43:00

Scala講座操作符函數(shù)

2010-07-13 11:11:39

Perl標(biāo)量

2009-11-30 16:48:08

PHP操作符

2009-07-14 18:34:22

Jython操作符重載

2010-01-28 11:16:28

C++操作符

2009-07-21 09:31:00

Scala數(shù)學(xué)運(yùn)算邏輯操作位操作符

2016-12-28 09:54:50

AndroidRxJava操作符

2017-01-03 16:12:13

RxJava操作符Android

2009-07-21 08:41:05

Scala操作符優(yōu)先級(jí)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

天堂久久一区二区三区| 国产精品久久久网站| 国产精品久久久久久久午夜片 | 黑鬼狂亚洲人videos| 99精品美女视频在线观看热舞| 亚洲精品中文在线观看| 国产在线精品二区| 一区二区视频网| 欧美特黄视频| 在线免费看av不卡| 稀缺小u女呦精品呦| 成人国产在线| 精品国产乱码久久久久久婷婷| 亚洲精品美女久久7777777| 精品国产乱码一区二区三| 亚洲自拍另类| 久久天天躁狠狠躁夜夜爽蜜月| 亚洲少妇18p| www.久久草.com| 色婷婷久久一区二区三区麻豆| 中文字幕日韩一区二区三区不卡| 天天操天天操天天| 国产呦萝稀缺另类资源| 日本精品性网站在线观看| 亚洲国产美女视频| 日本久久综合| 亚洲欧美另类在线观看| 亚洲av无码一区东京热久久| 国产精品亚洲成在人线| 欧美性高潮在线| 欧美乱做爰xxxⅹ久久久| 夜级特黄日本大片_在线| 2021国产精品久久精品| 超碰在线观看97| 国产又大又黄的视频| 日韩精品电影在线观看| 91sa在线看| 久久视频免费在线观看| 欧美成人国产| 麻豆成人在线看| 中文字幕第69页| 欧美美女一区| 国产亚洲视频在线观看| 亚洲精品中文字幕在线播放| www.神马久久| 欧美不卡视频一区| 波多野结衣在线免费观看| 欧美aaaaaaaa| 欧美日韩视频第一区| 999香蕉视频| 成人小电影网站| 欧美日韩激情小视频| 国产美女主播在线| av福利在线导航| 五月激情六月综合| 成人一对一视频| 蜜桃视频动漫在线播放| 婷婷久久综合九色国产成人 | 久久精品主播| 国产精品igao视频| 综合久久中文字幕| 奇米综合一区二区三区精品视频| 国产精品亚洲片夜色在线| 中国女人真人一级毛片| 蜜桃一区二区三区在线观看| 国产精品欧美激情| 一本到在线视频| 国产一区二区三区av电影| 91久久精品一区二区别| 午夜老司机福利| 成人av电影免费在线播放| 精品无人乱码一区二区三区的优势| 天堂中文字幕av| 久久久久久电影| 性欧美大战久久久久久久免费观看 | 欧美在线播放一区| www在线免费观看| 亚洲视频香蕉人妖| 日韩激情视频一区二区| 日韩激情电影| 欧美巨大另类极品videosbest | 国产91在线视频观看| a日韩av网址| 欧美三级电影在线看| 交换做爰国语对白| 人人精品视频| 在线中文字幕日韩| 久久久久久久黄色| 国产伦理一区| 国产中文字幕日韩| 手机看片一区二区| 欧美激情在线免费观看| 激情视频小说图片| 伊人色综合一区二区三区影院视频| 在线看国产一区二区| 亚洲五月激情网| 五月天亚洲一区| 久热精品视频在线观看| 影音先锋在线国产| 国产一区二区伦理| 免费看成人av| 影音先锋男人在线资源| 一本久久a久久免费精品不卡| 中文字幕久久av| 乱中年女人伦av一区二区| 中文字幕在线看视频国产欧美在线看完整 | 精品国产一区二区在线| 久久久久久久99| 久久电影国产免费久久电影| 国产日韩欧美综合精品| 看女生喷水的网站在线观看| 欧美午夜无遮挡| 真实乱偷全部视频| 欧美军人男男激情gay| 国语对白做受69| 国产精品玖玖玖| www国产成人| 欧美久久在线观看| 欧美大陆国产| 国产亚洲美女久久| 国产一级在线观看视频| 久久99精品久久久| 欧美在线一区二区三区四区| 55av亚洲| 欧美tk—视频vk| 午夜剧场免费在线观看| 日本成人在线一区| 免费成人在线观看av| 国产激情视频在线看| 日韩情涩欧美日韩视频| 精品国产国产综合精品| 久久久久久穴| 牛人盗摄一区二区三区视频| 美女网站视频在线| 日韩欧美一二三区| 好吊日在线视频| 久久99精品久久久久久国产越南| 日韩三级电影免费观看| 黑人巨大亚洲一区二区久| 亚洲精品动漫久久久久| 久久午夜鲁丝片午夜精品| 国模一区二区三区白浆| 国产精品jizz在线观看老狼| 另类一区二区三区| 日韩在线www| 一二三四区视频| 中文在线免费一区三区高中清不卡| 九九九九免费视频| 免费观看成人www动漫视频| 国产69精品99久久久久久宅男| 亚洲黄色在线观看视频| 亚洲图片自拍偷拍| 国产性猛交96| 亚洲高清二区| 久久99精品久久久久久三级 | 国产精品看片资源| jyzzz在线观看视频| 欧美在线观看一二区| 天天干天天舔天天操| 男人的天堂亚洲一区| 亚洲精品在线免费看| 亚洲91在线| 久久久精品视频在线观看| 国产伦理一区二区| 亚洲精品乱码久久久久久久久| 99热这里只有精品2| 伊人激情综合| 欧美日韩电影一区二区| 精品无人乱码一区二区三区| 色偷偷噜噜噜亚洲男人| 国产精品羞羞答答在线| 亚洲一区二区在线视频| 无遮挡aaaaa大片免费看| 久久久久久婷| 天天操天天干天天玩| 精品国产18久久久久久洗澡| 热久久免费视频精品| 999国产在线视频| 欧美一级xxx| 国产精品乱子伦| 亚洲国产精品传媒在线观看| 中文 日韩 欧美| 9色国产精品| 在线精品日韩| 国产乱论精品| 国产女人18毛片水18精品| 性xxxxfjsxxxxx欧美| 亚洲精品福利视频| 中文字幕第315页| 亚洲自拍偷拍麻豆| 瑟瑟视频在线观看| 国产精品18久久久久久久久| 日韩av黄色网址| 亚洲一级淫片| 欧美激情第六页| 另类视频一区二区三区| 91av在线免费观看| 国产美女av在线| 亚洲男人天堂古典| 超碰免费在线97| 色av一区二区| 国产91av视频| 亚洲欧美综合另类在线卡通| 深爱五月激情网| 国产美女主播视频一区| 免费裸体美女网站| 激情丁香综合| 在线观看成人av电影| 九九视频精品全部免费播放| 成人av片网址| 日韩午夜视频在线| 国产成人精品综合久久久| 国内高清免费在线视频| www.日韩免费| 黄色片视频在线观看| 亚洲国产一区二区三区四区 | 亚洲国产成人精品久久| 国产精品午夜一区二区| 同产精品九九九| 久久久久久蜜桃| 亚洲欧美一区二区在线观看| 舐め犯し波多野结衣在线观看| 国产综合一区二区| 手机看片福利日韩| 国产精品日韩久久久| 18禁裸男晨勃露j毛免费观看| 天天影视欧美综合在线观看| 日韩av电影在线观看| 欧美电影完整版在线观看| 成人一区二区在线| 久久久久久久性潮| 国产精品观看在线亚洲人成网 | 91免费高清视频| 成人a在线观看高清电影| 国产精品国产三级国产aⅴ9色| 欧美日韩国产观看视频| 欧美激情在线播放| 免费影视亚洲| 欧美高清视频一区二区| 日本伦理一区二区| 精品激情国产视频| 国产在线观看免费麻豆| www.亚洲人.com| 日本激情视频在线观看| 中国人与牲禽动交精品| av在线电影观看| 深夜福利一区二区| 69久久久久| 精品国产欧美一区二区三区成人| 色网站免费在线观看| 久久这里有精品| 97影院秋霞午夜在线观看| 九九视频直播综合网| 免费在线看污片| 97国产成人精品视频| 美女视频在线免费| 日本精品久久中文字幕佐佐木| 久久青青视频| 国产精品天天狠天天看| 日韩美女在线| 99国产高清| 欧美激情影院| 欧美理论一区二区| 成人亚洲一区| 日本特级黄色大片| 欧美日韩一区自拍 | 麻豆成人免费电影| www.国产福利| 成人深夜在线观看| 野外性满足hd| 国产精品久久久久aaaa樱花| 丝袜美腿小色网| 亚洲国产成人精品视频| 黄色在线视频网址| 欧美三级电影在线观看| 国产黄色片网站| 亚洲精品美女久久久久| 国产鲁鲁视频在线观看免费| 日韩一区二区三区xxxx| 国产精品蜜臀| 国产精品福利网站| 国产95亚洲| 久久精品国产精品青草色艺 | 成人激情久久| 国产欧美一区二区视频| 欧美三级情趣内衣| 成人免费在线视频播放| 麻豆久久婷婷| 国产成人精品一区二区在线小狼| 91麻豆国产自产在线观看| 99热这里只有精品4| 亚洲国产精品久久一线不卡| 夜夜爽妓女8888视频免费观看| 91精品国产综合久久久久久久久久 | 色吧亚洲视频| 尹人成人综合网| 校园春色 亚洲色图| 粉嫩av亚洲一区二区图片| 久久亚洲AV无码专区成人国产| 亚洲蜜桃精久久久久久久| 九九热在线免费观看| 69堂精品视频| 青青色在线视频| 欧美成人第一页| 日韩a**中文字幕| 国产精品久久久一区二区三区| 成人毛片免费看| 蜜桃传媒一区二区三区| 精久久久久久久久久久| 亚洲激情视频小说| 又紧又大又爽精品一区二区| 又骚又黄的视频| 亚洲精品一区二区在线| 日本理论片午伦夜理片在线观看| 国产精品嫩草影院久久久| 欧美网色网址| 香港三级日本三级a视频| 免费在线看成人av| 人妻无码一区二区三区| 亚洲国产欧美一区二区三区丁香婷| 日韩xxx视频| 亚洲老司机av| av在线播放资源| 产国精品偷在线| 亚洲mv大片欧洲mv大片| 99热这里只有精品在线播放| 91在线云播放| 青青国产在线观看| 精品99一区二区三区| www久久日com| 国产一区二区在线免费视频| 波多野结衣在线观看一区二区| 99福利在线观看| 久久综合丝袜日本网| 亚洲精品午夜久久久久久久| 日韩欧美黄色影院| 91亚洲天堂| 91国产丝袜在线放| 欧美体内she精视频在线观看| 天天干天天色天天干| 国产精品蜜臀在线观看| 亚洲熟妇无码久久精品| 日韩最新中文字幕电影免费看| 激情小说亚洲| 亚洲一区二三| 国产综合色视频| 爱爱视频免费在线观看| 欧美一区二区黄| 91极品在线| 国产精品一级久久久| 亚洲激情社区| 波多野结衣一本| 一本色道**综合亚洲精品蜜桃冫| 黄色电影免费在线看| 国产精品久久久久久久一区探花 | 手机看片久久久| 亚洲精品视频二区| 欧美aaa大片视频一二区| 亚洲一区二区精品在线| 精品一二三四在线| 破处女黄色一级片| 日韩欧美www| 两个人看的在线视频www| 久久久久网址| 秋霞国产午夜精品免费视频| 成人信息集中地| 日韩精品一区二区三区在线播放| 欧美极品少妇videossex| 久久99精品久久久久久青青日本 | 亚洲啪av永久无码精品放毛片| 婷婷六月综合亚洲| 岛国最新视频免费在线观看| 国产精品入口日韩视频大尺度| 91视频综合| 久久久久国产免费| 精品久久在线播放| www.成人.com| 国产精品久久久久久久久久直播| 一区二区三区国产盗摄| 欧美性受xxxx黑人| 日韩一级成人av| 在线观看v片| 在线观看成人av电影| av不卡在线播放| 国内av在线播放| 久久久免费精品| 成人aaaa| 亚洲天堂2024| 欧美视频在线观看一区二区| 午夜av在线免费观看| 免费不卡在线观看| 国产精品揄拍100视频| 69p69国产精品| 人人草在线视频| 在线观看日本一区| 91丨九色丨蝌蚪丨老版| 国产三级伦理片| 亲子乱一区二区三区电影| 一区二区三区午夜探花| 少妇大叫太粗太大爽一区二区|