第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

scala 一個語法問題

scala 一個語法問題

一只萌萌小番薯 2019-04-13 08:36:39
如題,下面這個map2的方法聲明理解存在問題,不理解rng這個地方的值到底是怎么傳入的,如果這是scala的lambda表達式,那么rng的值是如何來的呢附上Rand的定義typeRand[+A]=RNG=>(A,RNG)defmap2[A,B,C](ra:Rand[A],rb:Rand[B])(f:(A,B)=>C):Rand[C]=rng=>{val(a,r1)=ra(rng)val(b,r2)=rb(r1)(f(a,b),r2)}defboth[A,B](ra:Rand[A],rb:Rand[B]):Rand[(A,B)]=map2(ra,rb)((_,_))
查看完整描述

2 回答

?
HUH函數

TA貢獻1836條經驗 獲得超4個贊

map2的返回值是個函數,rng只是這個函數的參數。
在貼出的代碼中沒有對返回函數的調用,所以rng自然也沒有值。
rng在函數體中被ra調用
ra的類型是Rand[A],也就是一個函數,接收RNG,返回(A,RNG).因而rng的類型是RNG并且代碼中可以省略。
                            
查看完整回答
反對 回復 2019-04-13
?
慕斯709654

TA貢獻1840條經驗 獲得超5個贊

在REPL中做如下測試:
scalascala>implicitvala=1
a:Int=1
scala>deftest:Int=>Double=a=>a*3.0
test:Int=>Double
或者:
scalascala>valb=2
b:Int=2
scala>deftest2:Int=>Double=b=>b*3.0
test:Int=>Double
至于rng的來源,請查看map2方法的scope中是否有滿足需求(RNG類型)的變量、隱式值等...
知識點參考Scala的closure、implicitvalue等。
                            
查看完整回答
反對 回復 2019-04-13
  • 2 回答
  • 0 關注
  • 368 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號