Swift 1.1语言函数的返回值数具有一个多个返回值的函数Swift 1.1语言快速入门大学霸

Swift 1.1语言函数的返回值数具有一个多个返回值的函数Swift 1.1语言快速入门大学霸

Swift语言快速入门v3.0

Swift语言快速入门v3.0

7.5  函数的返回值根据是否具有返回值,函数可以分为无返回值函数和有返回值函数。以下将会对这两种函数类型进行讲解Swift 1.1语言函数的返回值数具有一个多个返回值的函数Swift 1.1语言快速入门大学霸。

7.5.1  具有一个返回值的函数Swift 1.1语言函数的返回值数具有一个多个返回值的函数Swift 1.1语言快速入门大学霸

开发者希望在函数中返回某一数据类型的值,必须要在函数声明定义时为函数设定一个返回的数据类型,并使用return语句进行返回。其中,return语句的一般表示形式如下:

return 表达式

其中,表达式可以是符合Swift标准的任意表达式。而具有返回值的函数声明定义形式如下:

func 函数名(参数列表)->返回值类型{

语句

return 表达式

}

其中,返回的表达式类型必须和函数的返回值类型一致。

【示例7-14】以下代码计算某一数值范围的长度,并返回输出。代码如下:

import Foundation

func range(start:Int,end:Int)->Int{

  return end-start                    

}

let a=range(0, 10)

println(a)

在代码中,指定函数的返回值类型为Int,而return表达式为end-start。运行结果如下所示:

10

Program ended with exit code: 0

7.5.2  具有多个返回值的函数Swift 1.1语言函数的返回值数具有一个多个返回值的函数Swift 1.1语言快速入门大学霸

在Swift中,函数不仅可以返回一个返回值,还可以返回多个,这时就需要使用到元组类型。其语法形式如下:

func count(参数列表) -> (返回值1:数据类型, 返回值2:数据类型, 返回值3:数据类型,…) {

……

 return (返回值1,返回值2,返回值3,…)

}

【示例7-15】下面就获取在一个字符串中得元音、辅音以及其它的个数。代码如下:

import Foundation

func count(string: String) -> (vowels: Int, consonants: Int, others: Int) {

var vowels = 0, consonants = 0, others = 0

for character in string {

switch String(character).lowercaseString {

case “a”, “e”, “i”, “o”, “u”:

++vowels

case “b”, “c”, “d”, “f”, “g”, “h”, “j”, “k”, “l”, “m”,

“n”, “p”, “q”, “r”, “s”, “t”, “v”, “w”, “x”, “y”, “z”:

++consonants

default:

++others

}

}

 return (vowels, consonants, others)

}

let str=”Hello Swift!”

let number=count(str)

println(“\(number.vowels)元音\n\(number.consonants)辅音\n\(number.others)其它”)

运行结果如下所示:

3元音

7辅音

2其它

Program ended with exit code: 0

在具有多个返回值的函数需要注意以下2点:

1.返回值个数一致

在->后面的返回值类型的个数要和return中的返回值个数一致,否则程序就会出现错误。如以下的代码,将示例7-15中的代码做了修改:

func count(string: String) -> (vowels: Int, consonants: Int, others: Int) {

var vowels = 0, consonants = 0, others = 0

return (vowels, consonants)

}

在此代码中可以知道,->后面的返回值类型有3个,但是return中得返回值有2个,它们的个数不一样,导致程序出现以下的错误:

Tuple types ‘(@lvalue Int, @lvalue Int)’ and ‘(vowels: Int, consonants: Int, others: Int)’ have a different number of elements (2 vs. 3)

2.返回值顺序

在->后面的返回值类型要和return中的返回值类型的顺序一致,否则程序就会出现错误。如以下的代码,将示例7-15中的代码做了修改:

func count(string: String) -> (vowels: Int, consonants: Int, others: Int) {

var vowels = 0, consonants = 0, others = 0

return (vowels,others,consonants)

}

在此代码中,->后面的返回值为(vowels: Int, consonants: Int, others: Int),return中的返回值为(vowels,others,consonants)由于它们的数据类型相同都是整型,所以在改变它们的位置后,程序不会出现错误。运行结构如下:

3元音

2辅音

7其它

Program ended with exit code: 0

7.5.3  无返回值Swift 1.1语言函数的返回值数具有一个多个返回值的函数Swift 1.1语言快速入门大学霸

函数除了有有返回值类型外,还有没有返回值的类型。在第7.2、7.3、7.4节中所讲的都是没有返回值的函数类型。没有返回值的类型不需要定义返回值类型,并且也不需要出现return语句。如果出现return语句,反而会造成程序错误。例如以下的代码,它的功能是输出某一数字。

import Foundation

func printaa(a:Int){

 return a

}

let num=9

let number=printaa(num)

println(number)

在此函数中,它是没有返回值的,但是在函数中又使用了renturn语句返回了a的值,所以导致程序出现了以下的错误信息:

‘Int’ is not convertible to ‘()’Swift 1.1语言函数的返回值数具有一个多个返回值的函数Swift 1.1语言快速入门大学霸

Comments are closed.