Swift2.0(9)函数的使用(一)

  • 函数的基本用法

一个简单的函数,如下:

func sayHello(personName:String) -> String {

let s = "你好" + personName + "!"

return s

}

let s = sayHello("iOS")

print(s)

func关键字:用于标示,这是一个函数

函数名字:sayHello  应当清晰明了且符合驼峰规则编码规范

参数列表:(personName:String)  personName是参数名,String是这个参数的类型

返回值:-> String 表示返回值是一个字符串类型

函数体:{ } 放置代码,即函数的执行代码

  • 函数的参数

函数可以没有参数:

func sayHello() -> String {

return "你好!"

}

print(sayHello())

可以为函数设置多个参数,如:

func sayHello(personName personName:String, isMale isMale:Bool) -> String {

var s:String;

if ( isMale ) {

s = "你好" + personName + ",帅哥!"

}

else {

s = "你好" + personName + ",美女!"

}

return s

}

print(sayHello(personName: "iOS", isMale: true))

参数的名字:

内部参数名:该参数名只在函数的内部能够看到,如:

func sayHello(personName:String) -> String {

let s = "你好" + personName + "!"

return s

}

print(sayHello("iOS"))

外部参数名:该参数名还可以在函数的外部看到,如:

func sayHello(personName personName:String) -> String {

let s = "你好" + personName + "!"

return s

}

print(sayHello(personName: "iOS"))

第二个参数及后面的参数,无论第一个参数是否是外部参数,都是外部参数,如:

func sayHello(person1Name:String, person2Name:String) -> String {

let s = "你好 " + person1Name + " and " + person2Name + "!"

return s

}

print(sayHello("iOS", person2Name: "Android"))

后续的参数前添加 “_ "可以打破这一规则

func sayHello(person1Name:String, _ person2Name:String) -> String {

let s = "你好 " + person1Name + " and " + person2Name + "!"

return s

}

print(sayHello("iOS", "Android"))

带可变参数的函数,如:

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

var total = 0;

for n in numbers {

total += n

}

return total

}

print(sum(1,2,3,4,5))

函数的默认参数,如:

func sayHello(personName personName:String, isMale:Bool =  true) -> String {

var s:String;

if ( isMale ) {

s = "你好" + personName + ",帅哥!"

}

else {

s = "你好" + personName + ",美女!"

}

return s

}

//print(sayHello(personName: "iOS", isMale: true))

print(sayHello(personName: "iOS"))

函数的默认参数,要遵循从最右边开始的规则

函数的重载,如:

func sayHello(personName personName:String) ->String {

let s = "你好" + personName + "!"

return s

}

func sayHello(personName personName:String, isMale:Bool) -> String {

var s:String

if ( isMale ) {

s = "你好" + personName + ",帅哥!"

}

else {

s = "你好" + personName + ",美女!"

}

return s

}

print(sayHello(personName: "iPhone”))  // 你好iPhone!

print(sayHello(personName: "iOS", isMale: true)) // 你好iOS,帅哥!

函数重载的依据是:参数列表不同

但要注意函数在重载时,如果参数带默认值带来的歧义的情况

参数的可变性:

参数默认都是常量(let),在函数内不能进行修改

可以显式声明参数为变量(var),这样参数在函数内就可以被修改

func factorial(var number:Int) ->Int {

var result:Int = 1

while number > 1 {

result = result * number

number--

}

return result

}

print(factorial(6))

要注意:形参不能修改实参

形参修改实参的办法:

swift精心设计了inout关键字,用于声明形参是一个出参,实参使用&运算符

func mySwap(inout a:Int, inout b:Int) {

var tem:Int

tem = a

a = b

b = tem

}

var x1 = 10, x2 = 20

mySwap(&x1, b: &x2)

print("x1=\(x1) x2=\(x2)”)     // x1=20 x2=10

注意:出参的实参必须是变量、出参不能带默认值、inout关键不能和let及var一期使用

  • 函数的返回值

无返回值:

func mySwap(inout a:Int, inout b:Int) {

var tem:Int

tem = a

a = b

b = tem

}

var x1 = 10, x2 = 20

mySwap(&x1, b: &x2)

print("x1=\(x1) x2=\(x2)”)     // x1=20 x2=10

一个返回值:

func factorial(var number:Int) ->Int {

var result:Int = 1

while number > 1 {

result = result * number

number--

}

return result

}

print(factorial(6))

多个返回值(元组):

func count(kids: Dictionary<String, String>) -> (girls:Int, boys:Int) {

var girls = 0, boys = 0

for c in kids.values {

if c == "Girl" {

girls++

}

else if c == "Boy" {

boys++

}

}

return (girls, boys)

}

var k:Dictionary<String, String> = ["AAA":"Girl", "BBB":"Boy", "CCC":"Girl", "DDD":"Girl", "EEE":"Boy"]

var (g, b) = count(k)

print("girls=\(g) boys=\(b)")

时间: 2024-08-13 22:35:24

Swift2.0(9)函数的使用(一)的相关文章

Swift2.0语言教程之函数嵌套调用形式

Swift2.0语言教程之函数嵌套调用形式 Swift2.0语言函数嵌套调用形式 在Swift中,在函数中还可以调用函数,从而形成嵌套调用.嵌套调用的形式往往有两种:一种是在一个函数中调用其他函数:另一种是在一个函数中调用自身函数.以下将对这两种调用进行详细讲解. Swift2.0语言嵌套调用基本形式 嵌套调用是指在函数中可以调用其他函数.调用方式如图7.4所示.   图7.4  函数嵌套的形式 [示例7-25]以下将使用函数的嵌套调用实现对s = 22! + 32!的计算.代码如下: impo

Swift2.0语言教程之函数的返回值与函数类型

Swift2.0语言教程之函数的返回值与函数类型 Swift2.0中函数的返回值 根据是否具有返回值,函数可以分为无返回值函数和有返回值函数.以下将会对这两种函数类型进行讲解. Swift2.0中具有一个返回值的函数 开发者希望在函数中返回某一数据类型的值,必须要在函数声明定义时为函数设定一个返回的数据类型,并使用return语句进行返回.其中,return语句的一般表示形式如下: return 表达式 其中,表达式可以是符合Swift标准的任意表达式.而具有返回值的函数声明定义形式如下: fu

swift2.0 UIImagePickerController 拍照 相册 录像

系统 ios9.1 语言swift2.0 在app 里最常用的功能就是多媒体选择,首先我们storyboard 创建一个button 用于触发选择事件 @IBAction func selectImageAction(sender: AnyObject) { } 这时候通常会弹出来一个ActionSheet 上面有拍照 , 相册,录像 和取消 这几项.iOS 8 以后actionsheet 和 alertview 都统一用UIAlertController 方法调用,8.3以前actionshe

swift 2.0 语法 函数

//: Playground - noun: a place where people can play import UIKit /*: 函数 * 格式 func 函数名称(形参名称1: 形参类型, ...) -> 返回值类型 { // 逻辑代码 } * 没有参数没有返回值 * 没有参数有返回值 * 有参数没有返回值 * 有参数有返回值 */ // 没有参数没有返回值 // 如果函数的返回值是Void, 那么可以简写为() // 如果函数的返回值是(), 那么可以直接不写 func say()

Swift2.0初见笔记

Swift2.0 1.简单值 1.使用let来声明常量,常量无法改变(相当于const);使用var来声明变量. var myVariable = 42 myVariable = 50 let myConstant = 42 2.常量或者变量的类型必须和你赋给它们的值一样.然而,你不用明确地声明类型,声明的同时赋值的话,编译器会自动推断类型 let implicitInteger = 70 let implicitDouble = 70.0 let explicitDouble: Double

Swift基础知识入门(基于Swift2.0)

//: Playground - noun: a place where people can play import UIKit // Swift中不需要设置main函数入口,编译器会在全局函数中自动设置程序的入口,在书写Swift代码时,可以不使用";"作为语句的结束标志 var str = "Hello, playground" var str1 = "Hello, LiLe" print("Hello World!")

窥探Swift2.0之需要注意的基本运算符和高级运算符

之前更新了一段时间有关Swift语言的博客,连续更新了有6.7篇的样子.期间间更新了一些iOS开发中SQLite.CollectionViewController以及ReactiveCocoa的一些东西.时隔两月,还得继续更新Swift语言的东西不是.在去年翻译<Swift编程入门经典>(Swift1.0版本,基于Xcode6)这本书时,系统的搞了搞Swift语言,接下来的一段时间内打算持续更新一下相关Swift语言的一些东西, 不过现在已经是Swift2.0版本了,区别还是不小的.并且目前在

Swift2.0语言教程之类的方法

Swift2.0语言教程之类的方法 Swift2.0语言的方法 方法其实就是函数,只不过它被定义在了类中.在Swift中,根据被使用的方式不同,方法分为了实例方法和类型方法两种.这两种方法的定义也和Objective-C是不同的.本节依次讲解这两种方法. Swift2.0语言的实例方法 实例方法被定义在类中,但是由类的实例调用.所以,这类方法被称为实例方法.实例方法和函数一样,分为了不带参数和带参数两种.以下依次讲解这两种方法的使用. 1.不带参数的实例方法 不带参数的实例方法定义和函数的是一样

总结swi1.2适配swift2.0遇到的改变

swift1.2适配swift2.0 以下列举的是我在项目中遇到的需要修改的,基本常见的问题就没有罗列了. 1.find函数变成了为indexOf 2.sort变成了sortInPlace 3.sorted变成了sort 4.enumerate(self.tableView.visibleCells)修改为self.tableView.visibleCells.enumerate() 5.Printable 变成了CustomStringConvertible 6.DebugPrintable

Swift2.0语言教程之类的属性

Swift2.0语言教程之类的属性 类 虽然函数可以简化代码,但是当一个程序中出现成百上千的函数和变量时,代码还是会显得很混乱.为此,人们又引入了新的类型--类.它是人们构建代码所用的一种通用.灵活的构造方式.本章将主要详细讲解类的使用. Swift2.0语言的类与对象 类是一种新的数据类型,类似于生活中犬类.猫类等等.而对象则是将这个抽象的类进行了具体化.例如,在犬类中,有哈士奇,金毛等等,这些就是犬类的具体化,即对象.本节将讲解类的创建以及如何将类进行具体化(即实例化)为对象. Swift2