• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

swift2.x学习笔记(三)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

//: Playground - noun: a place where people can play

 

import UIKit

 

var str = "Hello, playground"

 

func greet(name: String, day: String) ->String {

    return "Hello \(name), today is \(day).";

}

greet("Bob", day: "Tuesday");

 

func eat (name : String, food : String) ->String {

    return "Hi, \(name),let eat \(food) for lunch";

}

eat("wjw", food: "beef");

 

//使用元组,让一个函数返回多个值

func caculateStatistics(scores:[Int]) ->(min: Int, max: Int, sum: Int) {

    var min = scores[0];

    var max = scores[0];

    var sum = 0;

    

    for score in scores {

        if score > max {

            max = score;

        } else if score < min {

            min = score;

        }

        sum += score;

    }

    return (min, max, sum);

}

 

let statistics = caculateStatistics([5, 3, 100, 3, 9])

print(statistics.sum);

print(statistics.2);

 

//函数可以带有可变个数的参数, 这些参数在函数内表现为数组的形式

func sumOf(numbers : Int...) -> Int {

    var sum = 0;

    for number in numbers {

        sum += number;

    }

    return sum;

}

sumOf();

sumOf(42, 597, 12);

 

func averageOf(numbers : Int...) -> Int {

    var aver = 0;

    var count = 0;

    var sum = 0;

    for number in numbers {

        sum += number;

        count++;

    }

     aver = sum/count;

    return aver;

}

averageOf(32, 54);

 

//函数可以嵌套,被嵌套的函数可以访问外侧函数的变量,你可以使用嵌套函数来重构一个太长或者太复杂的函数

func returnFifteen() ->Int {

    var y = 10;

    func add() {

        y += 5;

    }

    add();

    return y;

}

returnFifteen();

 

//函数是第一等类型,这意味着函数可以作为另一个函数的返回值

func makeIncrementer() -> (Int ->Int) {

    func addOne(number : Int) ->Int {

        return 1 + number;

    }

    return addOne

}

var increment = makeIncrementer();

increment(7);

 

//函数也可以当做参数传给另一个函数

func hasAnyMatches(list : [Int], conditon : Int -> Bool) -> Bool {

    for item in list {

        if conditon(item){

            return true;

        }

    }

    return false;

}

func lessThanTen(number : Int) -> Bool {

    return number < 10;

}

var numbers = [20, 19, 7, 12];

hasAnyMatches(numbers, conditon: lessThanTen);

 

 

//函数实际上是一种特殊的闭包,它是一段能之后被调取的代码。闭包中的代码能访问闭包所创建作用域中能得到的变量和函数,即使闭包是在一个不同的作用域执行的,你已经在嵌套函数例子中所看到。你可以使用{}来创建一个匿名函数。使用 in 将参数和返回值类型声明与闭包函数体进行分离

numbers.map({

    (number: Int) -> Int in

    let result = 3*number;

    return result;

})

//重写闭包,对所有奇数返回0

numbers.map({

    (number : Int) -> Bool in

    let result = Bool(number/2 - 1);

    return result;

})

//有很多种创建更简洁的闭包的方法。如果一个闭包的类型已知,比如作为一个回调函数,你可以省略参数的类型和返回值。单个语句闭包会把它语句的值当做结果返回

let mappedNumbers = numbers.map({

    number in 3 * number

})

print(mappedNumbers);

 

//你可以通过参数位置而不是参数名字来引用参数--这个方法在非常短的闭包中非常有用。当一个闭包作为最后一个参数传给一个函数的时候,它可以直接跟在括号后面。当一个闭包是传递个函数的唯一参数,你可以完全忽略括号。

let sortedNumbers = numbers.sort{ $0 > $1}

print(sortedNumbers);


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
iOS学习笔记42-Swift(二)函数和闭包发布时间:2022-07-14
下一篇:
iOS开发Swift篇—(一)简单介绍发布时间:2022-07-14
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap