色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

拉姆達函數積分表達式

吉茹定2年前14瀏覽0評論

拉姆達函數積分表達式?

讓我們先看一個簡單的拉姆達表達式:

x=>x/2

這個表達式的意思是:x為參數,對x進行相應的操作后的結果作為返回值。

通過這個拉姆達表達式,我們可以看到:

這個表達式沒有任何類型信息,但這并不代表拉姆達表達式是和類型無關的。在實際運用上,編譯器會根據表達式的上下文判斷上述x的類型及返回值的類型。例如:

using System;

using System.Linq;

public class LambdaTest

{

static void Main() {

Func<int, double> expr = x => x / 2;

int someNumber = 9;

Console.WriteLine( "Result: {0}", expr(someNumber) );

}

}

上述代碼中,加粗部分為拉姆達表達式。Func<>為 delegate System.Func<T,TResult>

上述運行結果為:Result:4

根據我們學習的數學知識,9/2應當結果是4.5,為什么上述結果會是4而不是4.5呢?是因為x是整型,x/2的結果也是整型,雖然在上述我們拉姆達表達式中,我們指明結果是double,但x/2這個表達式,由于x是整型,故計算出來的結果已被截掉小數,然后再轉換為double,故結果是4,而不是4.5

要使結果是4.5,則只需定義上述相關語句為 Func<double,double> expr = x => x / 2 即可。

無參數的拉姆達表達式:

using System;

using System.Linq;

public class LambdaTest

{

static void Main() {

int counter = 0;

WriteStream( () => counter++ );

Console.WriteLine( "Final value of counter: {0}",counter );

}

static void WriteStream( Func<int> counter ) {

for( int i = 0; i < 10; ++i ) {

Console.Write( "{0}, ", counter() );

}

Console.WriteLine();

}

}

java 拉姆達表達式,拉姆達函數積分表達式