Swift - Function 1

 

Swift의 함수 정리 1

Function - 1


  • 파라미터는 기본값을 가질 수 있다.
  • 함수의 파라미터는 기본적으로 상수 형태이며(읽기 전용), in(입력용), out(출력용), in-out(입출력 모두 사용)으로 선언할 수 있다.
  • 함수는 인수의 타입, 반환 타입 등 타입을 가지고 있다.
  • 함수는 인수 타입이나 반환 타입이 없을 수도 있다.
  • 함수는 복수의 반환 타입(튜플)을 가질 수 있다.
  • 복수의 반환 타입(튜플)에 이름이 지정된 경우 해당 함수의 리턴값에 .이름으로 각각의 값에 접근할 수 있다. 이렇게 함수 선언 시 반환 타입에 튜플 이름을 지정하면 함수 내에서 반환 시 이름을 지정해줄 필요가 없다.
  • 함수로부터 반환되는 튜플 자체가 nil일 수 있을 경우 optional 튜플을 사용할 수 있다.
  • 이러한 함수의 타입을 Swift의 다른 타입과 마찬가지로 다른 함수의 인수로 전달하거나 다른 함수의 반환값으로 사용할 수 있다(함수의 인수로 함수를 넘기거나 함수의 리턴 값으로 함수를 사용할 수 있음).

func functionName([parameterLabel:]parameter type,]) [-> return type] {
	...
	[return returnValue]
}

// ex) 함수의 형태
func getStringWithIntFunction(intVal: Int) -> String {
	return "This number is \(intVal)"
}

// ex) 인수 타입과 반환 타입이 없는 함수의 형태
func noParamNoReturnFunction() {
	print("This function has no parameter and no return value")
}

// ex) 반환 타입이 튜플인 함수의 형태
func minMax(array: [Int]) -> (min: Int, max: Int) {
	currentMin = array[0]
	currentMax = array[0]

	for value in array[1..array.count] {
		if value < currentMin {
			currentMin = value
		} else if value > currentMax {
			currnetMax = value;
		}
	}

	return (currentMin, currentMax)
}

let bound = minMax(array: [8, -6, 2, 109, 3, 71])
print("min is \(bound.min) and max is \(bound.max)"

// ex) 반환 타입이 optional 튜플인 함수의 형태
func minMax(array: [Int]) -> (min: Int, max: Int)? {
	if array.isEmpty { return nil }
	currentMin = array[0]
	currentMax = array[0]

	for value in array[1..array.count] {
		if value < currentMin {
			currentMin = value
		} else if value > currentMax {
			currnetMax = value;
		}
	}

	return (currentMin, currentMax)
}