亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

匿名函傳入某個高階函數問題

第一種方式,高階函數傳入無參匿名函數時提示type mismatch:

http://img1.sycdn.imooc.com//59a8c3bd0001291706740259.jpg

第二種方式,高階函數傳入有參匿名函數時,是正常的

http://img1.sycdn.imooc.com//59a8c33000016c9410480311.jpg

老師能否解答一下這個問題,拿不準,是不是因為,Call-By-Name是語法和傳入的無參函數在調用高階函數時語法上面有沖突?那這個時候我如何去使這個能夠傳入一個無參的匿名函數呢?

? 注:經測試顯示定義的函數是可以傳入不報錯的,例如def anonymous = 10;

??http://img1.sycdn.imooc.com//59a8c5110001d34e07660259.jpg

正在回答

1 回答

剛才測試了一下:話不多說看代碼:

package scala.jeny

object Greeting extends App {

? ? //定義一個無參匿名函數,返回一個Int類型,并使用變量anonymous接收

? val anonymous = () => 10;

? //定義一個加法函數,函數名為add,接受一個無參函數,并對這個函數進行兩次計算并求和

? //可以說就是一個call-by-name的語法

? //這個點上可以傳入無參函數,也可以傳入一個表達式,個人認為前者就是后者包涵的部分

? def add(b:() => Int) = {

????? b() + b();

? };

println(add(anonymous));

}


0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

匿名函傳入某個高階函數問題

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

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

公眾號

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