zoukankan      html  css  js  c++  java
  • 初学 Swift (实现加减乘除功能和函数的基本类型)

    //计算器: 回调 
    
    
    typealias count  = ( Int  , Int  ) -> Int
    
    func add(a :Int ,b :Int) ->Int {
    
        return a+b
    
    }
    func  delete(a :Int ,b :Int) ->Int {
        
        return a-b
        
    }
    func cheng(a :Int ,b :Int) ->Int {
        
        return a*b
        
    }
    func dev(a :Int ,b :Int) ->Int {
        
        return a/b
        
    }
    
    func abc (fun : count, x : Int , y: Int) -> Int {
    
    return fun(x,y)
    
    }
    //var  f :count =add
    print(abc(add, x: 2, y: 3))
    print(abc(delete, x: 2, y: 3))
    print(abc(cheng, x: 2, y: 3))
    print(abc(dev, x: 2, y: 3))
    
    //MARK:
    //MARK: ////////8.函数///////
    
    //c语言 函数类型 :1,无返回值,无参数 2,有返回值,无参数 3,无返回值,有参数,4,有返回值,有参数;
    
    //函数 是用来完成特定任务的代码块 ,你给代码块起名字,用来作为标示,当需要执行这个代码块的时候,就调用这个名字;
    
    
    //1.无返回值 ,无参数
    func fun1() -> Void{
     print("无返回值,无参数")
    
    }
    
    //2.有返回值,无参数 ;
    func fun2() -> String
    {
    return "lzy"
    
    }
    //3,无返回值,有参数
    func fun3(a: Int , b : Int) -> Void
    {
    print(a+b)
    
    }
    //4 ,有返回值,有参数;用a: 调用 float 类型的函数
    func fun4(a :Int, b:Float)-> Float{
    return   Float(a)+b
    
    }
    //调用函数
    fun1()
    print( fun2() )
    
    fun3(3, b: 5) //没有返回值 ;
    
    print(  fun4(3, b: 5) )  //有返回值;
    
    
     // 5 .多个返回值 的函数 
    func fun5(a :Int ,b :Int ) -> (Int ,Float){
    
    return (a , Float(b))
    
    }
    print(fun5(3, b: 5))
    
    let (first ,second) = fun5(3, b: 5)
    
    print(first)
    print(second)
    
    print(fun5(3, b: 5).0)
    
    print(fun5(3, b: 5).1)  //
    
    
    func fun6(name name : String ,age : Int){
    print("name is (name), age  = (age)")
    }
    fun6(name: "lzy", age: 21)
    
    
    //交换两个数的值
    func fun7(inout  a :Int ,inout b :Int) -> Void{
        a  =  a ^ b ;
        b =  a ^ b ;
        a =  a ^ b  ;
    
    
    }
    var   x : Int  = 5 ;
    var    y : Int   =  10 ;
    fun7(&x, b: &y)
    print("x = (x) ,y = (y)")
    
    
    
    //函数指针
    typealias  swapFunc = (inout Int ,inout Int ) ->Void
    
    var  p_fun :swapFunc  =  fun7
    
    p_fun(&x, &y)
    print("x = (x) ,y = (y)")
    
    
    //函数指针 作为参数 ;
    
    func fun8(pfun : swapFunc , inout a : Int ,inout b : Int){
    
    pfun(&a, &b)
    
    
    }
    
    fun8(p_fun, a: &x, b: &y)
    print("x = (x) ,y = (y)")
    
    
    // 函数指针作为 返回值
    func fun9() -> swapFunc{
    //在函数体 里面定义的 ;
        let p_func : swapFunc  = fun7
        return p_func
    
    }
    fun9()(&x ,&y)
    print("x = (x), y =(y)")

    我认为未来苹果公司的主流语言是 swift,这估计到2020年啦.到时候我也有5年学习经验啦.

  • 相关阅读:
    JZOJ 3034. 【NOIP2012模拟10.17】独立集
    JZOJ 3035. 【NOIP2012模拟10.17】铁轨
    JZOJ 1259. 牛棚安排
    数位DP JZOJ 3316. 非回文数字
    JZOJ 3046. 游戏
    JZOJ 3013. 填充棋盘
    debian 安装oracle提供的java8
    java 汉字转拼音 PinYin4j
    debian ssh设置root权限登陆 Permission denied, please try again
    java并发下订单生成策略
  • 原文地址:https://www.cnblogs.com/woshizhenyi/p/4969932.html
Copyright © 2011-2022 走看看