函数嵌套与闭包

// 函数嵌套
int demo1()
{
    int x = 3;


    int bar(int z)
    {
        return x + z;
    }


    return bar(2) * bar(3);
}


// 闭包
int delegate(int) add(int lhs)
{  
    int foo(int rhs)
    {  
        return lhs + rhs;  
    }


    return &foo;  
}  


void demo2()
{  
    int delegate(int) addFive = add(5);  
    int twelve = addFive(7);  
    writefln("5 + 7 is %d", twelve);  



// 闭包(匿名函数)
int delegate(int) add2(int lhs)
{  
    return delegate int (int rhs)
    {  
        return lhs + rhs;  
    };  



void demo3()
{
    int delegate(int) addFive = add2(5);  
    int twelve = addFive(7);  
    writefln("5 + 7 is %d", twelve);  
}

你可能感兴趣的:(函数嵌套与闭包)