[Swift] function

2222 ワード

Function


keyword : func
func printName() {
    print("My name is Meredith")
}
printName()


func numgob(i: Int) {
    print(i*10)
}
numgob(i: 7)


func totalPrice(price: Int, count: Int) {
    print("Total Price : $\(price*count)")
}
totalPrice(price: 3, count: 15)


func printTotalPrice(_ price: Int, _ count: Int) {
    print("Total Price : $\(price*count)")
}
printTotalPrice(price: Int, count: Int) // price:Int 자리에 3, count:Int 자리에 15 입력
printTotalPrice(3, 15)

func printTotalPriceKorean(ㄱㅏㄱㅕㄱ price: Int, ㄱㅐㅅ수 count: Int) {
    print("Total Price : $\(price*count)")
}
printTotalPriceKorean(ㄱㅏㄱㅕㄱ: Int, ㄱㅐㅅ수: Int)
printTotalPriceKorean(ㄱㅏㄱㅕㄱ: 3, ㄱㅐㅅ수: 15)
//내가 설정한 한글로도 입력 전에 보이게 할 수 있다.

return


keyword : -> dataType
func totalPrice(price: Int, count:Int) -> Int {
    let total = price * count
    return total
}
print(totalPrice(price: 3, count: 15))

overload


function名は同じですが、パラメータタイプは異なります
// overroad
func printTotalPrice(price: Double, count: Double) {
    print(" Total price : \(price * count)")
}

func printTotalPrice(price: Int, count: Int) {
    print(" Total price : \(price * count)")
}

inout



parameterは基本的に定数(constant)を伝達する.
定数なので、値は変更できません.
したがって、関数で変更が必要な場合はinoutパラメータを使用します.
1.関数を呼び出すと、パラメータに渡される変数がコピーされます.
2.関数体で、コピーした値を変更します.
3.関数を返すときに、変更した値をソース変数に再割り当てします.
var value = 3
func incrementAndPrint(_ num: inout Int) {
    num += 1
    print(num)
}
incrementAndPrint(&value)
つまり、inoutは値を変更すると宣言したようなものです.

へんすうじゅしんかんすう

func add(_ a: Int, _ b: Int) -> Int {
    return a + b
}

func subtract(_ a: Int, _ b: Int) -> Int {
    return a - b
}

var function = add
function(4, 2)
function = subtract
print(function(4, 2))

func printResult(_ function: (Int, Int) -> Int, _ a: Int, _ b: Int) {
    print(function(a, b))
}
printResult(add, 33, 33)