swift 临时

//
// 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
    
    
}

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,458评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,030评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,879评论 0 358
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,278评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,296评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,019评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,633评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,541评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,068评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,181评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,318评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,991评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,670评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,183评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,302评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,655评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,327评论 2 358

推荐阅读更多精彩内容

  • 随着Swift逐渐趋于稳定,越来越多的公司开始使用Swift写程序,所以现在越来越多的公司需求这方面的人才. 下面...
    soojung灬阅读 329评论 0 0
  • 虽然Swift这门语言还很年轻,但是不可否认的是Swift很强大,也很便捷,但是习惯于OC编程之后再去写swift...
    One苹果OneDay阅读 687评论 0 2
  • Swift 介绍 简介 Swift 语言由苹果公司在 2014 年推出,用来撰写 OS X 和 iOS 应用程序 ...
    大L君阅读 3,229评论 3 25
  • swift的语法确实高端,用习惯了编程特别顺手。 swift中的变量分为两类,变量(var)和常量(let),常量...
    爱新觉罗fate阅读 315评论 0 0
  • import Foundation print("1","2","3","4"); //输出多个字符串,并用“**...
    风的低语阅读 470评论 0 0