1. 程式人生 > >《從零開始學Swift》學習筆記(Day 19)——函式引數傳遞

《從零開始學Swift》學習筆記(Day 19)——函式引數傳遞



原創文章,歡迎轉載。轉載請註明:關東昇的部落格

函式的語法格式如下:

func 函式名(引數列表) -> 返回值型別 {

語句組

return 返回值

}

關鍵字是func

多個引數列表之間可以用逗號(,)分隔,也可以沒有引數。

使用箭頭“->”指示返回值型別。返回值有單個值和多個值。如果函式沒有返回值,則“->返回值型別”部分可以省略。

如果函式有返回值,就需要在函式體最後使用return語句;如果沒有返回值,則函式體中可以省略return語句。

函式定義示例程式碼如下:

funcrectangleArea(width:Double, height:Double) -> Double {

let area = width * height

return area

}

print("320x480的長方形的面積:\(rectangleArea(320, height:480))")

傳遞引數

介紹幾種不同形式的引數。

  1. 使用外部引數名

為每個引數提供一個可以在函式外部使用的名稱,稱為外部引數名,修改rectangleArea函式的定義如下:

func rectangleArea(Wwidth:Double, H height:Double) -> Double {

let area = width * height

return area

}

在區域性引數名之前給一個“外部引數名”,用空格分隔。定義程式碼中的

WH就是外部引數名。呼叫程式碼如下:

print("320x480的長方形的面積:\(rectangleArea(W:320, H:480))")

如果我們提供了外部引數名,那麼在函式呼叫時,必須使用外部引數名,所以WH不能省略。

  1. 省略外部引數名

Swift 2.0提供省略外部引數名可能,在定義函式時,使用下劃線(_)表示外部引數名,示例程式碼如下:

funcrectangleArea(width:Double, _ height:Double) -> Double {

let area = width * height

return area

}

這樣函式在呼叫時就可以省略外部引數名,程式碼如下:

print("320x480

的長方形的面積:\(rectangleArea(320, 480))")

在定義函式時第一個引數不需要使用下劃線(_),預設第一個引數名是省略的,其他引數名要想省略則需要使用下劃線(_)符號。

  1. 引數預設值

在定義函式的時候可以為引數設定一個預設值,當呼叫函式的時候可以忽略該引數。看下面的一個示例:

func makecoffee(type :String = "卡布奇諾") -> String {

return "製作一杯\(type)咖啡。"

}

在呼叫的時候,如果呼叫者沒有傳遞引數,則使用預設值。呼叫程式碼如下:

let coffee1 = makecoffee("拿鐵")

let coffee2 = makecoffee()

最後輸出結果如下:

製作一杯拿鐵咖啡。

製作一杯卡布奇諾咖啡。

  1. 可變引數

Swift中函式的引數個數可以變化,它可以接受不確定數量的輸入型別引數,它們具有相同的型別。我們可以通過在引數型別名後面加入(...)的方式來指示這是可變引數。

下面看一個示例:

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

var total: Double = 0

for number in numbers {

total += number

}

return total

}

下面是兩次呼叫sum函式程式碼:

sum(100.0, 20, 30)

sum(30, 80)

可以看到每次傳遞引數的個數是不同的。

歡迎關注關東昇新浪微博@tony_關東昇。關注智捷課堂微信公共平臺,瞭解最新技術文章、圖書、教程資訊更多精品iOSCocos、移動設計課程請關注智捷課堂官方網站:智捷課堂論壇網站:

相關推薦

開始Swift學習筆記Day 19——函式引數傳遞

原創文章,歡迎轉載。轉載請註明:關東昇的部落格函式的語法格式如下:func 函式名(引數列表) -> 返回值型別 {語句組return 返回值}關鍵字是func。多個引數列表之間可以用逗號(,

開始Python學習筆記---之--pandas序列部分

序列序列(Series)可以理解成是Python中的列表、元組的高階版本。為什麼說是高階版本呢?因為序列一維陣列類似,具有更好的廣播效應,既可以與一個標量進行運算,又可以進行元素級函式的計算。如下例子所示: #列表無法與一個標量進行運算(雖然*不報錯,但是它表示的是重複)

開始Python學習筆記---之--pandas資料框(1)

作為從事資料相關工作朋友,平時接觸的更多的可能是一張有板有眼的資料表格,在這裡我們就叫作資料框。在Python中可以通過pandas模組的DataFrame函式構造資料框。 1、資料框的構造 在Python中,可以藉助於列表、元組、字典進行手工構建資料框,我們用例子說明:

開始Python學習筆記---之--pandas資料框(3)

在pandas資料框(2)我們使用pandas模組實現觀測的篩選、變數的重新命名、資料型別的變換、排序、重複觀測的刪除、和資料集的抽樣,這期我們繼續介紹pandas模組的其他新知識點。包括頻數統計、缺失值處理、資料對映、資料彙總。 一、頻數統計 我們以被調查使用者的收入資料

開始的vue學習筆記

資料與方法 當一個 Vue 例項被建立時,它將 data 物件中的所有的屬性加入到 Vue 的響應式系統中。data的資料和檢視同步更新。 例項建立後新增一個新的屬性,對這個屬性的的改動將不會觸發任何檢視的更新。 如果需要一個屬性,但是一開始它為空或不存在,僅需要設定一些初始值。 Object.freeze

開始的vue學習筆記

前言 今天花一天時間閱讀完vuex的官方文件,簡單的做一下總結和記錄 Vuex是什麼 Vuex 是一個專為 Vue.js 應用程式開發的狀態管理模式,以前的符合“單向資料流”理念的示意圖: 它包含三個部分: state,驅動應用的資料來源; view,以宣告方式將 state 對映到檢視; action

JSP+Servlet+Tomcat應用開發開始_完整版附原始碼

連結:https://pan.baidu.com/s/17Lx7g3qBVierneWlJJQCjg  提取碼:0x7w  目錄  第1章搭建 Java Web開發環境  1.1 Web開發背景知識  1.1.1 Web訪問的基本原理.&nb

開始Swift學習筆記Day67——Cocoa Touch設計模式及應用之MVC模式

table control sdn rate term targe rac uitabbar bsp 原創文章,歡迎轉載。轉載請註明:關東升的博客 MVC(Model-View-Controller,模型-視圖-控制器)模式是相當古老的設計模式之中的一個,它最早出如今

開始Swift學習筆記Day60——Core Foundation框架

類型轉換 字符 sso grid blog spa www water 轉載 創文章,歡迎轉載。轉載請註明:關東升的博客 Core Foundation框架是蘋果公司提供一套概念來源於Foundation框架,編程接口面向C語言風格的API。盡管在Swift中調用這樣

開始Swift學習筆記Day 55——使用try?和try!差別

移動設計 ani ecb pcl mva fde 成了 lms 官方 原創文章。歡迎轉載。轉載請註明:關東升的博客 在使用try進行錯誤處理的時候,常常會看到try後面跟有問號(?)或感嘆號(!),他們有什麽差別呢?1.使用try? try?會將錯誤轉換為可選值,當調

開始Swift學習筆記Day 57——Swift編碼規範之凝視規範:文件凝視、文檔凝視、代碼凝視、使用地標凝視

精品 -type mil 顯示 clas ber ansi tex text 原創文章。歡迎轉載。轉載請註明:關東升的博客 前面說到Swift凝視的語法有兩種:單行凝視(//)和多行凝視(/*...*/)。這裏來介紹一下他們的使用規範。 1、文件凝視文件凝視就在每個文

開始Swift學習筆記Day 44——重寫屬性

原創文章,歡迎轉載。轉載請註明:關東昇的部落格重寫例項屬性我們可以在子類中重寫從父類繼承來的屬性,屬性有例項屬性和靜態屬性之分,他們在具體實現也是不同的。例項屬性的重寫一方面可以重寫getter和set

補充趕鴨子上架D3.jsdataenter的---data,datum,update,enter,exit基礎概念b站開始畫圖表學習筆記,感謝up主睿小狼

繫結資料D3.js常用的繫結資料的方法有兩種   data和datum從英文單詞角度來說是data的附屬和date的區別與共同點:都是繫結資料集,但是data是將陣列中的每一個元素繫結到svg元素上面,而datum的作用是把陣列本身繫結到每個svg元素上面,簡而言之,data

開始Kotlin-控制語句4

系列文章 ren kcon tin else andro 格式 當前 break 從零開始學Kotlin基礎篇系列文章 條件控制-if var a=10 var b=20 if(a>b) print(a)

開始Kotlin-枚舉9

emc roi 實例 list cnblogs 外部 listener ring 枚舉 從零開始學Kotlin基礎篇系列文章 枚舉的定義 一個類的對象是有限且固定的,這種實例有限且固定的類稱為枚舉類; 枚舉常量用逗號分隔,每個枚舉常量都是一個對象; enum class

開始 Web 之 DOMDOM的概念,對標簽操作

關註 1.5 pan 什麽 tin p標簽 nod text == 大家好,這裏是「 Daotin的夢囈 」從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」公眾號,歡迎大家訂閱關註。在這裏我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,

開始 Web 之 DOM節點

def clas scrip while p標簽 設置 ner 操作 text 大家好,這裏是「 Daotin的夢囈 」從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」公眾號,歡迎大家訂閱關註。在這裏我會從 Web 前端零基礎開始,一步步學習 Web 相

開始 Web 之 BOMoffset,scroll,變速動畫函數

樣式 清理 java mar dde sof mov har width 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔 博客園:

開始 Web 之 jQuery獲取和操作元素的屬性

eight images idt 隱藏 lis 屬性 ner master lin 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔

開始 Web 之 jQuery為元素綁定多個相同事件,解綁事件

png 好用 添加 方式 執行 存在 區別 也會 地址 大家好,這裏是「 從零開始學 Web 系列教程 」,並在下列地址同步更新...... github:https://github.com/Daotin/Web 微信公眾號:Web前端之巔 博客園:http://ww