现在的位置: 首页 > 综合 > 正文

Swfit初学4–函数问题

2018年08月04日 ⁄ 综合 ⁄ 共 1929字 ⁄ 字号 评论关闭
/*-------我是帅气的分割线--------*/

/**********  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("找不到相应的函数")
}

【上篇】
【下篇】

抱歉!评论已关闭.