/**
함수의 응용
*/
// 1. Argument Label(아큐먼트 레이블)
// 파라미터명과 아규먼트명을 따로 정의 할 수 있음.
func printName1(first name: String ){
print("나의 이름은, \(name) 입니다.")
}
printName1(first: "소야")
func printPlus1(firstNumber a:Int, secondNumber b:Int){
print(a + b)
}
printPlus1(firstNumber: 3, secondNumber: 4)
// 2. 아큐먼트 레이블을 생략하기 (와일드카드 패턴 사용)
func printPlus2(_ first:Int, _ second:Int){
print(first + second)
}
printPlus2(1, 3)
// 3. 가변 파라미터 - 함수의 파라미터에 정해지지 않은, 여러개의 값을 넣는것도 가능 (Variadic Parameter)
// 하나의 파라미터로 두개 이상의 아규먼트를 전달할 수 있음.
// 아규먼트는 배열형식으로 전달한다.
// 가변파라미터는 개별함수마다 하나씩만 선언할 수 있다.(선언 순서는 상관없다)
// 가변파라미터는 기본값을 가질 수 없다.
func variadicAverage(_ numbers: Double...) -> Double{
var total = 0.0
for num in numbers{
total += num
}
return total / Double(numbers.count)
}
variadicAverage(1.5, 2.5, 3.5, 4.5)
// 4. 함수의 파라미터에 기본값(default)을 정할 수 있다.
func numFunction(_ num1:Int, _ num2:Int = 5)-> Int {
var result = num1 + num2
return result
}
numFunction(3)
numFunction(3,4)
// print 함수 파악
// 가변변수사용, 기본값으로 설정된 파라미터, 와일드카드패턴을 사용함.
//func print(_ items: Any..., separator: String = " ", terminator: String = "\n")
print("a","b","c",separator: "-",terminator: "")