函式 Function
書籤
基本架構
func (函式)() {
(執行的動作)
}
func function() {
print("learning swift is useful.")
}
function()
型別標註
func (函式)((常數): (型別)) {
(執行的動作)
}
func function(_ data: Int) {
print("\(data) + 1 = \(data + 1)")
}
function(1)
預設參數值
func function(_ data: Int = 10) {
print("\(data) + 1 = \(data + 1)")
}
function()
function(1)
執行結果
10 + 1 = 11
1 + 1 = 2
參數值為func
func data() {
print("swift")
}
func function(_ action: Void) {
action
}
function(data())
不同參數名稱
func (函式)((名稱) (常數): (型別)) {
(執行的動作)
}
func function(text data: String) {
print("\(data)")
}
func function(number data: Int) {
print("\(data)")
}
function(text: "swift")
function(number: 1)
多組參數
func (函式)((常數1): (型別1), (常數2): (型別2)...) {
(執行的動作)
}
func function(_ data1: String,_ data2: String) {
print("\(data1) & \(data2)")
}
function("text1", "text2")
不定數量參數
func (函式)((常數): (型別)...) {
(執行的動作)
}
func function(_ data: Int...) {
print("\(data)")
}
function(1, 3, 5)
回傳數值
func (函式)((常數): (型別)) -> (返回型別) {
(執行的動作)
return (返回值)
}
func function(_ data: Int) -> String {
return data == 0 ? "good" : "bad"
}
let result1 = function(0)
print(result1)
let result2 = function(1)
print(result2)
巢狀函式
範例一
func function(_ number: Int) -> String {
func data1() -> String {
return "good"
}
func data2() -> String {
return "bad"
}
return number == 0 ? data1() : data2()
}
let text1 = function(0)
let text2 = function(1)
print(text1)
print(text2)
範例二
func `repeat`(_ count: Int) -> (String) -> Void {
func function(_ data: String) {
for _ in 1...count {
print(data)
}
}
return function
}
`repeat`(2)("swift")