【iOS】Swift中的函数、断言、枚举等

函数与方法、枚举等的书写格式与用法较OC还是变化很大的。

一、函数

1.1 无返回值, 无形参

func myTest2(){
    println("Hello")
}

1.2 有返回值,有形参

func myTest1( num1:Int , num2:Int ) -> String{
    return String(num1 + num2)
}

1.3 外部参数. (相当于给参数起了个别名,方便识别记忆)

func myTest3 (myNum1 num1 :Int ,myNum2 num2: Int){
    println(num1 + num2)
}
myTest3(myNum1: 1, myNum2: 2) //调用

func myTest4 (#num1 :Int ,#num2: Int){   //前面加#表示直接用形参名作为外部参数名
    println(num1 + num2)
}
myTest4(num1: 2, num2: 3)

1.4 默认参数. (类似C++)

func myTest5(num1:Int , num2:Int = 10){
    println(num1+num2)
}
myTest5(1)
myTest5(1, num2: 22)    //后面一个参数默认是以形参为外部参数名的

func myTest6(num1:Int , _ num2:Int = 10){   //忽略形参的外部参数名, 在参数前加_
    println(num1+num2)
}
myTest6(1, 22)

1.5 常量与变量参数. (默认情况下,Swift的参数都是常量参数,是不能修改的)

//其他语言中, 如C语言是没有这个概念的. 可以随意修改
func myTest7(let num1:Int, num2:Int){
//    num2 = 10   //这句是错误的, 不能修改
    println(num1+num2)
}

func myTest8(var num1:Int, num2:Int){  //加上var即可, 变为变量参数. 可以修改
    num1 = 10
    println(num1+num2)
}

二、断言

和C语言基本一样,没什么好说的

var a = 10
assert(a>5, "Right")

三、枚举

不会像C语言中一样,默认会被赋值为0,1。。。

3.1枚举格式

enum CompassPoint{
    case North    //case表示新的一行成员被定义
    case South
    case East
    case West
    case A, B, C   //多个成员也可以出现在同一行上
}

3.2 访问枚举

var direct = CompassPoint.North
direct = .South       //因为前面访问过, 后面自动推断. 可不写枚举名
//CompassPoint.A

3.3 枚举结合Switch使用

switch direct{
case .North:
    println("Lots of planets have a north")
case .South:
    println("Watch out for penguins")
case .East:
    println("Where the sun rises")
case .West:
    println("Where the skies are blue")
default:
    println("OK")
}

3.4 关联枚举. 可关联变化的值

enum Barcode{
    case UPCA(Int,Int,Int)  //关联了3个参数
    case QRCode(String)    //关联了一个字符串
}
//
var productBarcode = Barcode.UPCA(0, 1, 2)   //这样使用, 关联了3个数.

3.5 枚举原始值.

enum MyASCII : Character{   //定义类型了
    case Tab = "\t"
    case LineFeed = "\n"
}

enum Planet: Int {
    case Mercury = 1, Venus, Earth, Mars, Jupite, Saturn, Uranus, Neptune
}
//使用toRaw方法可以访问枚举的原始值
println(Planet.Venus.toRaw())   //值为2, 这个自动递增
//使用fromRaw可找到原始的枚举成员
println(Planet.fromRaw(2))   //返回的是可选的类型, 意味着不一定存在

评价:为旧东西增加了新功能,简化了OC中函数的写法。对于用惯了OC的还是稍有不适应。

参考:

The Swift Programming Language  

Apple Dev Center

转载请注明出处:http://blog.csdn.net/xn4545945  

时间: 2024-10-10 22:13:52

【iOS】Swift中的函数、断言、枚举等的相关文章

浅谈swift中的函数类型和闭包

在讲swift的函数类型之前,我们先回忆一下我们以前学的定义一个swift的函数 func add(a: Int,b: Int) -> Int { return a + b } 好了, 我们开始我们函数类型的讲解 上面这个函数的类型是(Int ,Int)->Int 使用函数类型 我们都知道, 在swift中 , 函数类型就像其他数据类型一样,也就意味着我们可以给一个函数的常量或者是变量赋值 var f2: (Int,Int)-> Int = add f2(2,3) //结果为5 好了,接

Swift 中的函数(下)

学习来自<极客学院:Swift中的函数> 工具:Xcode6.4 直接上基础的示例代码,多敲多体会就会有收获:百看不如一敲,一敲就会 1 import Foundation 2 3 /***********嵌套函数*************/ 4 func getMathFunc(#type: String) -> (Int) -> Int{ 5 func squre(num:Int) -> Int{ 6 return num*num 7 } 8 func cube(num:

Swift 中的函数(中)

学习来自<极客学院:Swift中的函数> 工具:Xcode6.4 直接上基础的示例代码,多敲多体会就会有收获:百看不如一敲,一敲就会 1 import Foundation 2 3 //函数 4 5 //1.多个返回值 6 func area(width: Double,height: Double) -> (Double,Double) 7 { 8 var b = width 9 var a = width * height 10 return (a,b) 11 } 12 printl

[Swift]UIAlertController 以及 Swift 中的闭包和枚举

原文地址:http://blog.callmewhy.com/2014/10/08/uialertcontroller-swift-closures-enum/ 在 iOS8 的 SDK 中, UIKit 框架里两个经常使用的 API 有了比較大的修改.UIActionSheet 和 UIAlertView 都被 UIAlertController 替换了. 在 iOS8 里,假设你想要弹出消息,你应该使用 UIAlertController 而不是那两个不建议使用的类了. ActionShee

Swift 中的函数(上)

学习来自<极客学院:Swift中的字典> 工具:Xcode6.4 直接上基础的示例代码,多敲多体会就会有收获:百看不如一敲,一敲就会 1 import Foundation 2 3 //函数 4 /*1.定义函数的语法格式 5 func 函数名(形参列表) -> 返回值类型 { 6 //可执行语句组成的函数 7 } 8 */ 9 //定义和调用函数 10 func sayHello(personName: String) -> String{ 11 return "Hel

Swift 中的利刃,函数和闭包

input[type="date"].form-control,.input-group-sm>input[type="date"].input-group-addon,.input-group-sm>.input-group-btn>input[type="date"].btn,input[type="time"].input-sm,.form-horizontal .form-group-sm input

Swift 中的高阶函数和函数嵌套

高阶函数 在Swift中,函数可做为"一等公民"的存在,也就意味着,我们可以和使用 int 以及 String 一样,将函数当做 参数.值.类型来使用. 其中,将函数当作一个参数和值来使用可见下: typealias addTwoInts = (Int,Int)->(Int) var funcType = addTwoInts.self func aAddb(a:Int,b:Int) -> Int { return a+b } func addFunc(_ add:addT

[Swift]Day06:函数

函数 参数 外部变量名 一般情况下你可以不指定外部变量名,直接调用函数: func helloWithName(name: String, age: Int, location: String) { println("Hello \(name). I live in \(location) too. When is your \(age + 1)th birthday?") } helloWithName("Mr. Roboto", 5, "San Fra

Swift学习之函数和简单地控件的创建

 今天还是重复昨天做的事情--敲代码,但唯一的不同就是所学的知识不同了,我们又进一步往深得层次学习了,感觉越来越有意思了,虽然临近结束了看着大家积极性越来越低了,但是我知道我不能这样,我要比别人付出的更多,更加的踏实才行,因为我知道我的基础不如别人,目标和动力也和他们不同,看着大家有的说是只要找到工作就好,还有的说只要每个月够花就好,担着真的是大家来这里学习的最终目的吗,如果是这样,真的还不如随便找个工作将就一下,也比这个整天做到这好多了,还交了那么贵得费用,所以何必呢,既然选择了这条路,既然当