You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
varnum1=10varnum2=20
// 두 숫자를 스왑(서로 교환)하는 함수의 정의
func swapTwoInts(_ a:inoutInt, _ b:inoutInt){lettempA= a
a = b
b = tempA
}
// 위에서 정의한 함수의 실행
swapTwoInts(&num1,&num2)print(num1)print(num2)
위에 swap 함수를 Double, String 등 다양한 타입으로 교환하고 싶다면 어떻게 할거임?
계속해서 만들어서 사용하는 것은 엄청 비효율적임
// Double을 스왑하는 함수의 정의
func swapTwoDoubles(_ a:inoutDouble, _ b:inoutDouble){lettempA= a
a = b
b = tempA
}
// (정수가 아닌) 문자열을 스왑하는 함수의 정의
func swapTwoStrings(_ a:inoutString, _ b:inoutString){lettempA= a
a = b
b = tempA
}
뭐 이런식으로 만들 수 있겠지만 에바임 ㅋㅋ
그래서 사용하는 것이 제네릭임
func swapTwoValues<T>(_ a:inoutT, _ b:inoutT){ // 플레이스홀더의 역할(표시 역할일뿐) (같은 타입이어야함)
lettempA= a
a = b
b = tempA
}
The text was updated successfully, but these errors were encountered:
제네릭
서로를 swap하는 함수를 하나 만듬
inout
키워드를 사용해서 파라미터의 값을 바꿔줌파라미터는 값 타입이라서 바꿀 수 없지만
inout
키워드를 사용한다면 바꿀 수 있음inout 톺아보기
지금
inout
이 중요한 게 아니라 제네릭을 왜 써야 하는지 보겠음위에 swap 함수를 Double, String 등 다양한 타입으로 교환하고 싶다면 어떻게 할거임?
계속해서 만들어서 사용하는 것은 엄청 비효율적임
뭐 이런식으로 만들 수 있겠지만 에바임 ㅋㅋ
그래서 사용하는 것이 제네릭임
The text was updated successfully, but these errors were encountered: