1. swift block, without any arguments and without return value
123456789
typealiasfuncBlockA=()->()typealiasfuncBlockAA=()->Voidvar_funcBlockA:funcBlockA={()->Voidinprintln("***block without any arguments and without return value")}
2.swift block with arguments and return value
1234567
var_funcBlockB:funcBlockB={(stringA:String,stringB:String)->Stringinprintln("***swift block with arguments and without any return value")return(stringA+stringB)}
3.swift block with arguments and return value as function
1234567
var_funcBlockC:funcBlockC={(stringA:String,stringB:String)->(String)->()inblockC("***wift block with arguments and return value:\(stringA) and \(stringB)")returnblockC}
4.swift block as function parameter and return value as function with parameter and return value
123456
var_funcBlockD:funcBlockD={(stringA:String,stringB:String)->(String)->(String)inblockD("***swift block as function parameter:\(stringA) and \(stringB)")returnblockD}
funcblockC(name:String){println(" blockC= (\(name))")}funcblockD(name:String)->String{varresult:String="blockD = "+nameprintln(result)returnresult;}classQBlock{//swift block, without any arguments and without return valuetypealiasfuncBlockA=()->()typealiasfuncBlockAA=()->Void//swift block with arguments and return valuetypealiasfuncBlockB=(String,String)->String//swift block with arguments and return value as functiontypealiasfuncBlockC=(String,String)->(String)->()//swift block as function parameter and return value as function with parameter and return valuetypealiasfuncBlockD=(String,String)->(String)->Stringvar_funcBlockA:funcBlockA={()->Voidinprintln("***block without any arguments and without return value")}var_funcBlockB:funcBlockB={(stringA:String,stringB:String)->Stringinprintln("***swift block with arguments and without any return value")return(stringA+stringB)}var_funcBlockC:funcBlockC={(stringA:String,stringB:String)->(String)->()inblockC("***wift block with arguments and return value:\(stringA) and \(stringB)")returnblockC}var_funcBlockD:funcBlockD={(stringA:String,stringB:String)->(String)->(String)inblockD("***swift block as function parameter:\(stringA) and \(stringB)")returnblockD}init(){self.testMemberBlock()}privatefunctestMemberBlock(){///1. swift block, without any arguments and without return valueself._funcBlockA()//swift block with arguments and without any return valuevarres=self._funcBlockB("ksnowlv","kair")println("_funcBlockB = result = \(res)")// //swift block with arguments and return value as functionvarblockC=self._funcBlockC("ksnowlv","kair")blockC("go shopping")//swift block as function parameter and return value as function with parameter and return valuevarblockD=self._funcBlockD("ksnowlv","kair")varresult=blockD("go shopping")println("result blockD = \(result)")}}