Swift學習筆記(三十三)——常量引數,變數引數和inout引數
(1)一般預設在函式中定義的引數都是常量引數,也就是這個引數你只可以查詢使用,不能改變它的值。
(2)如果想要宣告一個變數引數,可以在前面加上var,這樣就可以改變這個引數的值了。
如:
func getName(var id:String).........
此時這個id值可以在函式中改變。
(3)一般預設的引數傳遞都是傳值呼叫的,而不是傳引用。 所以傳入的引數在函式內改變,並不影響原來的那個引數。傳入的只是這個引數的副本。
(4)
import Foundation
func swapTwoInts(var a:Int,var b:Int){
let t = a
a = b
b = t
}
var x = 0,y = 100
println("x = \(x) ;y = \(y)")
swapTwoInts(x, y)
println("x = \(x) ;y = \(y)")
此時傳入的引數是原來值的副本,所以這個函式並不會交換兩個值。
修改方法是使用inout關鍵字:
import Foundation
func swapTwoInts(inout a:Int,inout b:Int){
let t = a
a = b
b = t
}
var x = 0,y = 100
println("x = \(x) ;y = \(y)")
swapTwoInts(&x, &y)
println("x = \(x) ;y = \(y)")
這樣,兩個變數的值就真正改變了。
github主頁:https://github.com/chenyufeng1991 。歡迎大家訪問!
相關文章
- Bash變數和引數變數
- python變數和引數Python變數
- 引數匹配模型——Python學習之引數(二)模型Python
- 12.MyBatis學習--對映檔案_引數處理_單個引數&多個引數&命名引數MyBatis
- Pytest學習筆記8-引數化筆記
- 引數匹配順序——Python學習之引數(三)Python
- python疑問5:位置引數,預設引數,可變引數,關鍵字引數,命名關鍵字引數區別Python
- [go 學習筆記] 二、變數、常量Go筆記變數
- Java對比有引數和無引數Java
- [swift 進階]讀書筆記-第六章:函式 C6P4 inout引數和可變方法Swift筆記函式
- 什麼是請求引數、表單引數、url引數、header引數、Cookie引數?一文講懂HeaderCookie
- 【重學Java】可變引數Java
- 引數的定義和引數的傳遞
- 【Java】可變引數Java
- docker學習筆記-啟動映象輸入引數Docker筆記
- 一文搞清楚Java中的方法、常量、變數、引數Java變數
- python---函式引數、變數Python函式變數
- c#基礎-5.變長引數和引數預設值C#
- Java方法04:命令列傳遞引數、可變引數Java命令列
- TypeScript 函式可選引數和預設引數TypeScript函式
- postman 請求引數和 Spring Boot Controller 接受引數PostmanSpring BootController
- 小程式內引數和掃碼引數統一
- Shell學習【引數傳遞】
- Python學習之引數(一)Python
- Python可變引數*args和**kwargsPython
- C#學習筆記-方法引數、擴充套件方法C#筆記套件
- 『忘了再學』Shell基礎 — 16、位置引數變數變數
- go-可變引數Go
- 可變引數例項
- Swift 使用lexicographicallyprecedes 多個引數排序Swift排序
- 自學PHP筆記(四) PHP變數和常量PHP筆記變數
- 自學PHP筆記(四) PHP常量和變數PHP筆記變數
- golang學習之路之函式可變引數Golang函式
- TensorFlow常量、變數和佔位符詳解(學習筆記)變數筆記
- Swift 呼叫 Objective-C 的可變引數函式SwiftObject函式
- 機器學習之超引數機器學習
- nofile引數的學習與整理
- 引數配置
- python引數Python