/*-------我是帅气的分割线--------*/ /********** Swfit函数 *************/ //类似Javascript中的函数 //Swfit函数 --------> 函数类型:(type,type) -> returnType func getMyClass(mySchool: String, myClass: String) -> String{ return mySchool + "-" + myClass } /*-------我是帅气的分割线--------*/ //内外部参数名称 func getMyClassName(mySchool localSchool: String, myClass localClass: String) -> String{ return localSchool + "-" + localClass } var myClass = getMyClassName(mySchool:"北京大学",myClass:"1班") //一旦声明了外部参数名称,那么在调用的时候必须加上外部参数名称,否则报错 //--------- 创建是否麻烦,apple帮我们解决 // 在局部参数面前加个"#"号,会自动创建一个跟局部参数名称一个的外部参数名称 func getMyClassNewName(#mySchool: String,#myClass: String) -> String{ return mySchool + "-" + myClass } var myNewClass = getMyClassNewName(mySchool:"北京大学",myClass:"1班") // func getMyClassWithSchool(mySchool :String,#myClass: String) -> String{ return mySchool + "-" + myClass } var myNewClassWithSchool = getMyClassWithSchool("北京大学",myClass:"1班") //如果不想要编译器自动为默认参数创建外部参数名称,那么需要在局部参数名称前加"_" func jionString(stringA: String ,#stringB: String, _ jioner: String = "-") -> String{ return stringA + jioner + stringB } let jion = jionString("你",stringB:"好") println("result = \(jion)") /*-------我是帅气的分割线--------*/ //加减乘除四个函数 // //func add(a:Int , b:Int) -> Int{ // return a + b //} // //func minus(a:Int , b:Int) -> Int{ // // return a - b //} // //func multiply(a:Int , b:Int) -> Int{ // // return a * b //} // //func divide(a:Int , b:Int) -> Int{ // // return a / b //} // ////接受,类似函数指针 // //var operate = add // //let addResult = operate(3,5) //println("addResult = \(addResult)") // //operate = minus //类似函数指针 //let minusResult = operate(5,3) //println("minusResult = \(minusResult)") /*-------我是帅气的分割线--------*/ //-------->>嵌套函数 func getOperate(operation: String) -> ((Int,Int) -> Int)?{ func add(a:Int , b:Int) -> Int{ return a + b } func minus(a:Int , b:Int) -> Int{ return a - b } func multiply(a:Int , b:Int) -> Int{ return a * b } func divide(a:Int , b:Int) -> Int{ return a / b } switch(operation){ case "+": return add case "-": return minus case "*": return multiply case "/": return divide default: return nil } } var operate2 = getOperate("+") if let realOperate = operate2{ println("result = \(realOperate(3,5))") }else{ println("找不到相应的函数") }