天天看點

《Swift 權威指南》——第6章,第6.1節函數的定義和調用

本節書摘來自異步社群《swift 權威指南》一書中的第6章,第6.1節函數的定義和調用,作者 李甯,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

第6章 豐富多彩的功能——函數

swift 權威指南

swift語言為函數提供了豐富多彩的功能。但從功能上來說,swift函數和其他語言的函數相比是非常強大的,在後面章節要介紹的方法與函數基本上一緻。不過在本章先不讨論方法的細節,隻介紹函數的各種功能和使用方法。

本章要點

函數的定義和調用

傳回多種的函數

擴充參數

擴充參數和内部參數使用同一個名字

預設參數值

可變參數

常量和變量參數

輸入/輸出參數

函數類型

嵌套函數

6.1 函數的定義和調用

源代碼檔案:src/ch06/function/function/main.swift

swift并不是純的面向對象語言,是以和c++一樣,支援函數。函數和方法的差別就是函數是全局的,而方法的作用域僅限于方法内。要想引用方法,必須先要引用包含該方法的對象。也可以将方法看成是定義在類中的函數。是以,函數和方法的定義規則基礎一緻。在後面講到類時再詳細讨論方法的細節。本節先來讨論如何定義一個函數。

不管是什麼語言,函數都必須由下面幾部分組成。

函數名。

傳回值類型。

函數的參數清單,在清單中包含參數名(形參)和參數類型。

函數體。

定義swift語言的函數也逃不出這幾項。下面看一下swift函數的文法形式。

很明顯,swift函數和c語言的函數在定義上差異很大。首先,swift函數必須以func開頭,然後跟着函數名,接下來是函數參數清單,最後是傳回值類型。其中函數參數清單和傳回值類型之間需要用“→”分隔。最後需要用一對花括号({...})将函數體括起來,這裡面函數參數類型清單和傳回值類型都是可選的。如果不指定函數參數清單,則函數沒有參數,但必須在函數名後面指定一對圓括号。如果不指定傳回值類型,則函數沒有傳回值,相當于c語言函數前面指定了void。

下面是一個标準的swift函數的代碼,該函數接收一個string類型的參數,傳回一個string類型的值,最後調用了sayhello函數,并輸出了函數的傳回值。

執行這段代碼後,會輸出如下内容。

下面是一些其他形式的函數(多個參數、沒有參數、沒有傳回值)。

繼續閱讀