swift-2

//元祖
//和数组非常相似,其区别是?
// 元祖的长度是任意的、元祖中的数据类型可以是不同的类型的。

//元祖的定义
var userInfo1 = ("zhangsan","man",22)
/*
//读取元祖里的数据
print(userInfo1.1)
//或者
let (name,isMale,age) = userInfo1;
//在这里  name == "zhangsan"
print(name)

//元祖定义的第二种方法
var userInfo2 = (name:"lisi",isMale:"woman",age:22)
print(userInfo2.name)
//在元祖中,我们可以跳过我们不关心的值,用下划线带过。这样我们就访问不到userInfo1.1这个数据
let(name,_,age) = userInfo1;
//元祖中可变元祖和不可变元祖

var user1 = ("xiaohua","man","35")
print(user1.1)
user1.0 = "xiaozhang";
print("\(user1)")

let(name,isMale,age) = ("xiaohua1","man","35")
print(name)

//可选值Optional,在类型后面加个? 代表他是可选的。可选的意思是他可以为nil  也可以不为nil
var myVar : NSString? = nil
myVar = "小美"
print(myVar)

var myVar1 : String
print(myVar!)


//可选值的拆包,是因为可选值 内部封装枚举类型的Optional (+some)


//if和let 组合可以去除Optional

if let name = myVar
{
    print(name)
}


//问候语 某某 类型后面必须要加 ? 打印出某某你好

var name : NSString? = nil
name = "阿呆"
var sayHi : NSString? = nil
sayHi = "hello"
sayHi = ("hello\(name!)")
print(sayHi)


//函数
//OC -(返回值类型) 方法名 (参数){
//函数的实现部分
//}

//swift 中函数的关键字 叫做 func

//func 函数名(参数) -> 返回值类型{实现部分}
//函数的声明部分与实现部分
func 问候语(name:String,day:String)->String{
    return "hello,\(name),today is \(day)"
}
//函数调用
print(问候语("LiSa","星期三"))

//元祖作为函数返回值

//传入一个int 型的数组,返回最大值,最小值,和
func 计算(var 数组:[Int])->(max:Int, min:Int, sum:Int){
    var max = 数组[0]
    var min = 数组[0]
    var sum = 0
    for items in 数组{
        if max < items{
            max = items
        }
        if min > items{
            min = items
        }
        sum += items
    }
    return (max,min,sum)
}

//调用这个函数
let 运行结果 = 计算([12,23,32,52,61,5,3])
print("max = \(运行结果.max),min = \(运行结果.min),sum = \(运行结果.sum)")


//swift 函数可以嵌套函数
func returnFifteen()->Int{
    var ten = 10
    func addFive(){
        ten += 5
    }
    addFive()
    return ten
}

print(returnFifteen())

//函数作为返回值的情况 返回函数的参数列表->返回函数的返回值
func makeFunc()->(Int->Int){
    func addFive(a:Int)->Int{
        return a+5
    }
    return addFive
}
var func1 = makeFunc()
print(func1(12))


func makeComputerFunc(Operation:String)->((Int,Int)->Int){
    switch Operation{
        case "+":
            func add(num1:Int,num2:Int)->Int{
                return num1 + num2
        
            }
            return add
        
        case"-":
            func sub(num1:Int,num2:Int)->Int{
                   return num1 - num2
            }
        return sub
        case"*":
            func product(num1:Int,num2:Int)->Int{
                return num1*num2
            }
        return product
    case"/":
        func division(num1:Int,num2:Int)->Int{
            return num1/num2
        }
        return division
    default:
        func oth(num1:Int,num2:Int)->Int{
            return 0
        }
        return oth
    }
}

var func2 = makeComputerFunc("-")
println(func2(12,6))

*/
//函数作为参数的情况
//第一层函数,参数为一个数组。和一个比较的函数。返回值是一个Bool类型
//比较函数,判断第一层函数传人的数组中是否有大于10的数,如果大于10 返回ture ,如果小于10返回false

func hasAnyMatches(numbers:[Int],condition:(Int)->Bool)->Bool{
    for num in numbers{
        if condition(num){
            return true
        }
    }
    return false
}

func moreThanTen(num:Int)->Bool{
    if num > 10{
        return true
    }else{
        return false
    }
}

println(hasAnyMatches([1,21,11,23,32],moreThanTen))

 

转载于:https://www.cnblogs.com/liYongJun0526/p/4874182.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值