- 작업 환경
https://growingsaja.tistory.com/771
Playground : ContentView.swift 파일 수정
1. function의 형태 3가지
//parameter와 return값 둘 다 있는 경우
func 함수이름(파라미터1이름: 파라미터1타입, 파라미터2이름: 파라미터2타입, ...) -> 반환타입 {
/* 함수 구현부 */
return 반환값
}
//매개변수가 없는 경우
func 함수이름() -> 반환타입 {
/* 함수 구현부 */
return 반환값
}
//반환값이 없는 경우
func 함수이름() -> void{
/* 함수 구현부 */
}
2. Parameter와 Return이 있는 함수 예시
let num1 : Int = 3
let num2 : Int = 4
func add(a:Int, b:Int) -> Int {
var result : Int
result = a+b
return result
}
print(add(a: num1,b: num2))
func string_ex(name:String, age:Int, height:Double) -> String {
return "My name is \(name), I'm \(age) years old. My height is \(height)"
}
let Said = string_ex(name: "민지", age:13, height: 163.0)
print(Said)
3. Parameter와 Return 중 하나가 없는 함수 예시
TIP : return이 없는 함수의 경우, 확인해보면 실제로는 비어있는 튜플을 return한다.
// Parameter가 없고 Return은 있는 함수
func say_hi() -> String {
return "Hi~"
}
print(say_hi())
// Parameter는 있지만 Return은 없는 함수
func say_hello(name: String) {
print("Hello!!! \(name)")
}
let result : Any = type(of: say_hello(name:"철수"))
print(result)
4. 복수의 값 return 함수 예시
func find_minmax(array: [Int]) -> (min: Int, max: Int) {
var currentMin : Int = array[0]
var currentMax : Int = array[0]
for i in array[1..<array.count] {
if currentMin > i {
currentMin = i
}
if currentMax < i {
currentMax = i
}
}
return (min: currentMin, max: currentMax)
}
let target_array = [1, 3, 5, 7, 9, 51, 21, 16, 94, -4, -24]
let result = find_minmax(array:target_array)
print(result)
func find_minmax_exceptnil(array:[Int]) -> (min:Int, max:Int)? {
if array.isEmpty {
return nil
}
var currentMax = array[0]
var currentMin = array[0]
for i in array[1..<array.count] {
if currentMin > i {
currentMin = i
}
if currentMax < i {
currentMax = i
}
}
return (min:currentMin, max:currentMax)
}
let target_array2 = [524, 726, -321, -532, 423, -731]
if let result2 = find_minmax_exceptnil(array: target_array2) {
print(result2.min)
print(result2.max)
}
let target_array3 = [Int]()
if let result_nil = find_minmax_exceptnil(array: target_array3) {
print(type(of:result_nil))
print(result_nil)
}
5. 함수 파라미터의 default값 설정 및 파라미터 이름 언급 안하고도 사용할 수 있도록 코딩하기
func add(_ firstParameterName: Int = 2, secondParameterName: Int = 5) -> Int {
let result : Int = firstParameterName + secondParameterName
return result
}
print(add(3, secondParameterName: 9)) // 3 + 9
print(add(secondParameterName: 15)) // 2 + 15
print(add(5)) // 5 + 5
print(add()) // 2 + 5
'Development > iOS' 카테고리의 다른 글
[Swift] 기본 문법 정리 9 : 옵셔널(Optional)과 옵셔널 바인딩(Optional Binding), 옵셔널 체이닝(Optional Chaining), nil 병합 연산자(nil coalescing operator) (0) | 2023.03.06 |
---|---|
[Swift] 기본 문법 정리 8 : 클래스(Class)와 구조체(Structure) (1) | 2023.03.04 |
[Swift] 기본 문법 정리 6 : 집합 Set (0) | 2023.03.04 |
[Swift] 기본 문법 정리 5 : 반복문 for, while (0) | 2023.03.04 |
[Xcode] Playground 열어서 편한 환경에서 Swift 체험하기 (0) | 2023.03.02 |