ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (Swift) 함수 사용법 정리
    Programing Language/Swift 2019. 10. 10. 11:03
    728x90
    반응형

    1. 함수선언의 기본형태

    func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 ...) -> 반환타입 {
        /* 함수 구현부 */
        return 반환값
    }
    
    // 예)
    // sum이라는 이름을 가지고 
    // a와 b라는 Int 타입의 매개변수를 가지며 
    // Int 타입의 값을 반환하는 함수
    func sum(a: Int, b: Int) -> Int {
        return a + b
    }
    
    sum(a : 1, b: 2)       //3
    
    func sumA(_ a :Int , _ b : Int)-> Int {
    	return a + b
    }
    
    sumA(1 + 3) //3
    
    func 에 '_'을 넣고 안넣고의 차이는 함수를 불러올때 함수의 변수값에 변수명과 값을 다적고 안적고의 차이이다.

     

    중요 포인트!!!!

    func 에 '_'을 넣고 안넣고의 차이는 함수를 불러올때 함수의 변수값에 변수명과 값을 다적고 안적고의 차이이다.

     

    2. 반환 값이 없는 함수

    func 함수이름(매개변수1이름: 매개변수1타입, 매개변수2이름: 매개변수2타입 ...) -> Void {
        /* 함수 구현부 */
        return
    }
    
    // 예)
    func printMyName(name: String) -> Void {
        print(name)
    }
    
    // 반환 값이 없는 경우, 반환 타입(Void)을 생략해 줄 수 있습니다
    func printYourName(name: String) { <- Void의 경우에 축약형이 가능하다!
        print(name)
    }

     

    --------------------------------------------헷갈림 --------------------------------

     

    3. 데이터 타입으로서의 함수

    • 눈 여겨 볼 부분은 함수변수넣을 수 있다는 점이다.
    // 함수 내부에서 전달인자를 사용할 때에는 매개변수 이름을 사용합니다
    func greeting(to friend: String, from me: String) {
        print("Hello \(friend)! I'm \(me)")
    }
    
    // 함수를 호출할 때에는 전달인자 레이블을 사용해야 합니다
    greeting(to: "hana", from: "yagom") // Hello hana! I'm yagom
    
    // 앞에서 선언한 함수를 변수에 넣을수 있다 <- 이게 java랑 많이 다른듯!!
    var someFunction: (String, String) -> Void = greeting(to:from:)
    someFunction("eric", "yagom") // Hello eric! I'm yagom
    
    someFunction = greeting(friend:me:)
    someFunction("eric", "yagom") // Hello eric! I'm yagom
    
    
    // 타입이 다른 함수는 할당할 수 없습니다 - 컴파일 오류 발생
    //someFunction = sayHelloToFriends(me: friends:)
    
    
    func runAnother(function: (String, String) -> Void) {
        function("jenny", "mike")
    }
    
    // Hello jenny! I'm mike
    runAnother(function: greeting(friend:me:))
    
    // Hello jenny! I'm mike
    runAnother(function: someFunction)
    728x90
    반응형
Designed by Tistory.