日常随笔第七弹-闭包

闭包

let cs = {
    (a: Int, b:Int) in
    
    return a + b
}//创建一个闭包,参数类型要么前面说明,要么在里面创说明
let ss = cs (1,2)//调用,进行传值
print(ss)



func es (a:Int, b :Int, c:(Int,Int)->Int) ->Int{
    return c(a,b)
}//创建一个有闭包参数的函数


let pp = es(11, b: 34, c: cs)
print(pp)



var arr1 = [1,3,2,5]
var arr2 = arr1
    .map({$0*$0})//将数组中的元素进行平方
    .filter({$0>3})//筛选arr1大于3
    .map({"\($0)"})//将数组元素转换为字符串类型
    .reduce("", combine: {$0+$1})//将字符串连接起来
print(arr2)
let kk:(q:Int, w:Int)->Int = {
    q,w in
    return q+w
}
let ww = kk(q: 1,w: 2)//对闭包进行传值
print(ww)



let uu = {
    () -> Int in
    return 33
}() //执行闭包
print(uu)


func test1(a:Int) -> (Int)->(Int)->Int{
    var b=3
    return {
        print("二层",$0,a,b)
            //return $0+a+b
        return{
            print("三层",$0,a,b)
            return $0+a+b
        }
    }
}

let ss2 = test1(33)(3)(44)//三层调用闭包
print(ss2)

用代码实现之前的猜数字的功能和界面

import UIKit

class ViewController: UIViewController {
    var result = arc4random_uniform(100)//生成一个100以内的随机数
    let label1 = UILabel()
    let textfield = UITextField()
    override func viewDidLoad() {
        super.viewDidLoad()
        //史上最强猜数字框
        let label = UILabel()
        label.frame = CGRectMake(60, 30, 200, 50)
        label.backgroundColor = UIColor.brownColor()
        label.text = "史上最强猜数字"
        label.textAlignment = .Center//文本框内容字对齐
        self.view.addSubview(label)
        
        //结果输出框
        label1.frame = CGRectMake(60, 300, 200, 50)
        label1.text = "结果为:"
        label1.backgroundColor = UIColor.blueColor()
        label1.textAlignment = .Center
        self.view.addSubview(label1)
        
        
        //数字0
        let label2 = UILabel()
        label2.frame = CGRectMake(90, 90, 30, 50)
        label2.text = "0"
        label2.backgroundColor = UIColor.greenColor()
        label2.textAlignment = .Center
        self.view.addSubview(label2)
        
        
        //数字100
        let label3 = UILabel()
        label3.frame = CGRectMake(190, 90, 30, 50)
        label3.text = "100"
        label3.backgroundColor = UIColor.greenColor()
        label3.textAlignment = .Center
        self.view.addSubview(label3)
        
        
        //到
        let label4 = UILabel()
        label4.frame = CGRectMake(140, 90, 30, 50)
        label4.text = "到"
        label4.backgroundColor = UIColor.cyanColor()
        label4.textAlignment = .Center
        self.view.addSubview(label4)
        
        
        //输入文本框
        textfield.frame = CGRectMake(60, 150, 200, 50)
        textfield.backgroundColor = UIColor.redColor()
        textfield.keyboardType = UIKeyboardType.NumbersAndPunctuation//设置键盘类型
        textfield.borderStyle = .RoundedRect//设置圆边框
        textfield.placeholder = "请输入内容"
        textfield.clearsOnBeginEditing = true//清除上一次的输入
        textfield.clearButtonMode = .WhileEditing//设置输入框的清除按钮
        textfield.font = UIFont.boldSystemFontOfSize(30)//设置字体大小
        self.view.addSubview(textfield)
    
        //确定按钮
        let but = UIButton(type:.System)
        but.frame = CGRectMake(110, 220, 100, 50)
        but.backgroundColor = UIColor.greenColor()
        but.setTitle("确定", forState: .Normal)
        but.setTitle("选中", forState: .Selected)
        //let image = UIImage(named: "check")
        //let image1 = UIImage(named: "check1")
        //but.setBackgroundImage(image, forState: .Normal)
        //but.setBackgroundImage(image1, forState: .Selected)
        self.view.addSubview(but)
        //添加触碰事件动作
        but.addTarget(self, action: #selector(DidClick), forControlEvents: .TouchUpInside)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func DidClick(){//定义点击调用的函数
        let guess = UInt32(textfield.text!)
        print("猜测数字为",textfield.text)
        print("实际数字是:",result)
        if guess == result {
            label1.text = "猜对了"
        }
        else if guess > result{
            label1.text = "不好意思,数字大了"
        }else {
            label1.text = "不好意思,数字小了"
        }
        
    }
    //设置点击屏幕空白处,发生第一响应,撤销键盘
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
        
        self.view.endEditing(true)
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,442评论 25 707
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,019评论 4 62
  • 艺术家们所弹奏的旋律,画的画儿,无须经过翻译,不胫而走,就飞到另一个国家去。但文学却不能。语言文字是一个国家或民族...
    TSinghe阅读 8,553评论 1 3
  • 我还是很喜欢你像风走过八万里不问归期——摘自APP“古诗词典” (一) 我还是很喜欢你 像泼墨山水 横拖千里 (二...
    小木山庄的溜溜阅读 2,184评论 5 9
  • 英国有一个建筑学家来伊恩在设计一个市政府大楼时,它利用自己的经验,力学知识,只用一根柱子就能撑起整个天花板的重量,...
    遇见小白杨阅读 180评论 0 0