Swift에서의 함수를 보자
func sayHello(){
print("Hello")
}
sayHello()
기존의 함수와 비슷한 형태로 쓰인다
func 함수명() {
내용
}
으로 선언되며
함수명() 으로 호출하여 사용한다.
간단한 String형 인자를 받는 함수를 만들어보자.
func sayHello2(name : String){
print("Hello \(name)")
}
sayHello2("Cho")
name : String
내용이 추가되었다.
String 형태의 인자를 받아온다는 것이다.
실제로 sayHello2("Cho")로 Cho라는 String 인자를 넣어 함수를 호출하면
"Hello Cho"가 출력된다.
함수 인자의 default 값도 추가 할 수 있다.
func sayHello3(name : String = "Kim"){
print("Hello \(name)")
}
sayHello3()
default값을 넣어줄 경우에는
함수에 인자를 받는 코드에서 default 값을 추가해주면 된다.
name : String = "default값" 형태로 말이다.
다음으로 두개 이상의 인자를 받으면서 return 형태를 지정해 주는 함수를 보자
func sayHello4(name : String = "Kim", age : Int) -> String{
return "Hello \(name) is \(age) years old"
}
print(sayHello4("Cho", age: 3))
함수 끝부분에 "-> String" or "-> Int" 으로 리턴값을 지정해줄 수 있다.
근데 여기서 "Cho"는 인자를 넣을 때 파라미터를 지정해주지 않지만 age는 파라미터를 지정해주고 있다.
그 이유는 처음 파라미터는 생략하기 때문이다.
만약 생략하지 않고 사용하려면 익스터널 파라미터를 지정해주면 된다.
func sayHello5(name2 name : String = "Kim",age2 age : Int) -> String{
return "Hello \(name) is \(age) years old"
}
print(sayHello5(name2 : "Cho", age2: 3))
익스터널 파라미터는 외부에서 값을 접근하기 위해, 구분하기 위해서 사용한다.
여기서는 name2와 age2가 익스터널 파라미터이다.
만약에 앞에 파라미터를 입력을 하기 귀찮거나 싫으면
다음과 같이 하면 된다.
func sayHello6(name : String = "Kim",_ age : Int) -> String{
return "Hello \(name) is \(age) years old"
}
원래 처음 파라미터는 생략하니깐 괜찮고
뒤쪽에 익스터널 파라미터를 생략하기 위해서는
언더스코어를 사용하면 된다. "_"
전체 소스
//: Playground - noun: a place where people can play
import UIKit
func sayHello(){
print("Hello")
}
sayHello()
func sayHello2(name : String){
print("Hello \(name)")
}
sayHello2("Cho")
func sayHello3(name : String = "Kim"){
print("Hello \(name)")
}
sayHello3()
func sayHello4(name : String = "Kim", age : Int) -> String{
return "Hello \(name) is \(age) years old"
}
print(sayHello4("Cho", age: 3))
// -> String : String 리턴하겠다.
//로컬 파라미터 = name : String
//인자를 여러개 넣을 때, ','로 입력
//왜 앞에는 name을 넣지 않나? 처음에 있는 것은 생략한다.
// 생략하지 않고 사용하려면 익스트널 파라미터를 사용
// name name
func sayHello5(name2 name : String = "Kim",age2 age : Int) -> String{
return "Hello \(name) is \(age) years old"
}
print(sayHello5(name2 : "Cho", age2: 3))
//익스터널 파라미터는 외부에서 값을 접근하기 위해 구분하기 위해서 사용
//name2, age2가 익스터널 파라미터
//로컬파라미터만 사용하려면 인자값만 넘겨주면 된다. (값만 , 로 넘겨주는 것)
func sayHello6(name : String = "Kim",_ age : Int) -> String{
return "Hello \(name) is \(age) years old"
}
print(sayHello6("Cho",3))
//언더스코어를 사용하면 됨 '_'
'Develop > Swift' 카테고리의 다른 글
Swift2 Struct (구조체) (0) | 2021.08.10 |
---|---|
Swift2 Class (0) | 2021.08.10 |
Swift2 IF, SWITCH 문 (0) | 2021.08.10 |
Swift2 For, While 문 (0) | 2021.08.10 |
Swift2 Collection Types (Array, Set, Dictionary) (0) | 2021.08.10 |