美文网首页
swift 临时

swift 临时

作者: zhenyu54 | 来源:发表于2016-06-13 09:06 被阅读0次

    //
    // ViewController.swift
    // Swift01_函数
    //
    // Created by lanou on 16/6/12.
    // Copyright © 2016年 lingzhi. All rights reserved.
    //

    import UIKit

    class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
    

    //========================================//

        //无参无返
    

    // demo01() //self也可以 不建议用 一般在block中用
    // demo02()
    // demo03()
    //

    //========================================//

        //有参无返
    

    // lengthOfString ("ewwef",str2: "abcde")
    // lengthOfString(a: "ewwef", str2: "abcde")

        //========================================//
    

    // //无参有返
    // let s=demo()
    //
    // print(s)
    //
    //
    //
    // //========================================//
    // //有参有返
    // //格式:func 函数名(参数列表...)->返回值类型 相当于实例方法 类方法class func private func 外部不可见方法
    //
    // let str=demo5("1ewqwq", str2: "afadsfds")
    // print(str)

        //========================================//
        //调用闭包
        //(1)无参 无返
    

    //
    // closure()
    // /*
    //
    // 这是一个无参无返回值的闭包
    // /
    //
    // //(2)有参无返
    // closure1("HelloWorld")
    //
    // /

    // 这是一个输入参数为HelloWorld的闭包
    //
    // */
    // //(3)无参有返
    //
    // let length:Int=closure2()
    //
    //
    // print("字符串长度是(length)")
    //
    //
    // //(4)有参有返
    //
    // let leng=closure3("fgfdg","fdsf")
    //
    // print("字符串长度是(leng)")
    //

      //直接敲回车
       let length = newStringLength("sadasdas") { (a) -> String in
            
            
            let b="hello\(a)"
            
            return b
            
            
        }
        
        
        print("字符串长度\(length)")  //封装网络请求使用较多
    

    }

    //========================================//
    //!!!swift里面运行函数嵌套 函数里面再定义函数 并且外部不可见
    //调用的时候尽量不采用self
    //类方法class func  类名调用的函数前面加上class
    //private func 外部不可见方法 如果一个类只要求在本类中调用,不希望外面可见,就加上private
    //UI控件的响应事件不要加上private修饰 否则会提示找不到方法 UI控件的响应事件调用栈不是self调用 UITouch的一个对象 见论坛
    
    //函数 4种类型
    
    //无参无返回值
    //      格式   func 函数名(){ }
    

    //
    // func demo01(){
    //
    // print("无参无返")
    //
    //
    // func demo(){
    //
    // print("--------")
    //
    // }
    //
    //
    // demo()
    // }
    //
    // func demo02()->() //->() 返回值
    // {
    //
    // print("无参无返02")
    //
    // }
    //
    // func demo03()->Void
    // {
    //
    // print("无参无返03")
    //
    // }
    //

    //========================================//

    //有参无返
    //格式:func 函数名(外部访问参数 参数:参数类型...){}
    //非第1个参数如果没有外部访问参数的话会将形参当成外部访问参数  可以写或不写 但是封装一般要写
    

    // func lengthOfString(str1:String,str2:String)
    // {
    //
    // print("(str1)和(str2)的长度是(str1.characters.count+str2.characters.count)")
    //
    //
    //
    // }

    /*
    ewwef和abcde的长度是10
    
    */
    //  非第一个参数如果没提供外部访问参数 会显示 优化
    

    // func lengthOfString(a str1:String,str2:String)
    // {
    //
    // print("(str1)和(str2)的长度是(str1.characters.count+str2.characters.count)")
    //
    // }

    //========================================//
    //无参有返
    

    // func demo()->String
    // {
    //
    // return "返回一个字符串"
    //
    //
    //
    // }
    // //========================================//
    // // 有参有返
    //
    // func demo5 (str1:String ,str2:String)->String //str2外部 str2两个同名也会报黄
    //
    // {
    // //方式①
    // var s:String=str1;
    //
    // s+=str2 //str1+=str2 错误 因为函数中改变不了实参值
    // //方式②
    //// let s = "(str1)(str2)" //类似占位符

    // return s

    // }

    //谷歌邮箱 积分 github 博客地址 逛社区 解决问题的习惯
    

    //========================================//
    //闭包
    //闭包相当于C里面的block 封装了一段有特定功能的代码块

    //闭包的格式
    /**
    *  
    
    
    {
        (输入参数列表...)->返回值类型 //与函数名后面的一样
        in
        闭包里面执行的代码块
    
    
    
    }
    
    一样也可以作为函数参数
    
    
    */
    //(1)无参 无返
    

    // let closure = {
    //
    // ()->()
    // in
    // print("这是一个无参无返回值的闭包")
    //
    // }
    //
    //
    // //(2)有参无返回值
    //
    // let closure1={
    //
    // (str:String)->()
    // in
    // print("这是一个输入参数为(str)的闭包")
    //
    //
    // }
    //
    //
    // //(3)无参有返
    // //随便定义字符串 返回字符串长度
    // let closure2={
    //
    // ()->(Int)
    // in
    //
    // let string="abcdefg"
    // return string.characters.count
    //
    //
    //
    // }
    //
    // //(4)有参有返
    // //输入2个参数为字符串 返回总长度
    //
    // let closure3={
    //
    // (str1:String,str2:String)->(Int)//(Int)括号可以省略
    // in
    //
    // return str1.characters.count+str2.characters.count //老师用str联合了一下
    //
    //
    //// /(str1:String,str2:String)->(Int) 闭包类型
    //

    //========================================//

    //定义一个函数 2个输入参数 其中一个是闭包
    //闭包的功能是将输入的第一个参数拼接上Hello 返回一个新的字符串
    //函数的功能返回新字符串的长度
    
    
    
    func newStringLength(str1:String,closure:(a:String)->String)->Int
    {
        
        let str=closure(a:str1)
        
        
        return str.characters.count
        
        
    }
    

    }

    相关文章

      网友评论

          本文标题:swift 临时

          本文链接:https://www.haomeiwen.com/subject/xikydttx.html