zoukankan      html  css  js  c++  java
  • swift -函数、函数指针

    //
    //  main.swift
    //  FunctionTest-04
    //
    
    import Foundation
    
    println("函数測试!")
    
    testFunction()
    
    //
    //  FunctionTest.swift
    //  FunctionTest-04
    //
    
    
    import Foundation
    //函数以func开头 表示是一个函数
    //參数和參数以,
    //v1 表示參数:String 表示參数的类型
    // -> 表示返回值 String
    func testConcat(v1:String, v2:String)->String{
        return "(v1) and (v2)";
    }
    
    //參数是0个。返回值是三个
    func getInfo()->(String,String,String){
        return ("欢迎","来到","百度");//是一个元祖
    }
    
    //标签是oc的长处swift把oc里面的标签拿过来了
    func testConcat2(v1 :String, andValue v2 :String,andNumber v3 :Int)->String{
        return"(v1) and (v2) and (v3)";
    }
    
    
    func testFunctionInFunction()->Int
    {
        var y = 10;
        //add是一个函数 lua脚本语言
        func add(){
            //var y = 1;以下这个y会选择zui
            y += 5;
        }
        add();
        return y;
    }
    //这是一个函数 返回值是(Int->Int)
    func getFuncPointer()->(Int->Int){
        func addOne(num : Int)->Int
        {
            return num+1;
        }
        //这里返回一个函数的地址
        return addOne;
    }
    
    func testFunction()
    {
        println("開始測试函数");
        
        let v = testConcat("hello","world");
        println(" v is (v)");
        
        //andValue:称为一个标签
        let v2 = testConcat2("百度",andValue:"百度招聘",andNumber:100);
        println("v2 is (v2)");
        
        let(v3,v4,v5) = getInfo();
        println("v3(v3) v4(v4) v5(v5)");
        
        
        let v6 = testFunctionInFunction();
        
        println("v6 is(v6)");
        
        //函数指针
        var funcPointer = getFuncPointer();
        var v7 = funcPointer(199);
        println("v7 is (v7)");
        
        //把函数地址/指针作为參数
        var arr = [20,10,333,4,43,33];
        var v8 = hasAnyMatch(arr,lessThanTen);
    }
    
    func hasAnyMatch(list : [Int],condition:Int -> Bool) -> Bool
    {
        for item in list{
            if(condition(item))
            {
                return true;
            }
        }
            return false;
        
    }
    
    func lessThanTen(number :Int)->Bool{
        return number <= 10;
    }
    


  • 相关阅读:
    进程池Pool
    进程间通信-Queue
    多任务版udp聊天器
    列表循环放引用并写出打印结果
    协程实现tcp两个客户端的通讯
    正则匹配身份证和邮箱
    python中上双互斥锁的线程执行流程
    小巧的http live streaming m3u8播放器
    js实现@提到好友
    mongoose多级嵌套操作
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/7101737.html
Copyright © 2011-2022 走看看