여기 내 코드입니다 :신속한 일반 기능 오류?
func swapTwoValues<T>(inout a: T, inout b: T){
let temp = a
a = b
b = temp
}
var aInt = 5
var bInt = 98
swapTwoValues(&aInt, &bInt)
때 호출 기능 swapTwoValues (), "T"는 INT 타입
입니다하지만
func swapTwoValues<T,S:String>(inout a: T, inout b: T , inout c: S){
let temp = a
a = b
b = temp
c = "Hi"
}
var aInt = 5
var bInt = 98
var cStr = "Hello"
swapTwoValues(&aInt, &bInt,&cStr)
이 오류가 표시됩니다에이 코드를 변경할 때, 하지만 왜? 내가 문자열 유형에 "S"로 설정
, 그것은 문자열 구조체이며, 구조체가 확장 될 수 없다는 단순한 이유 작동하지해야 올바른
구조체를 확장 할 수없는 이유는 무엇입니까? 자습서 "확장 기능은 기존 클래스, 구조 또는 열거 유형에 새로운 기능을 추가합니다." –
죄송합니다. 단어를 잘못 사용했습니다. 구조는 "확장"을 사용하여 확장 할 수 있습니다. 그러나 그들은 상속으로 "확장"될 수 없습니다. "확장"에 특별한 제한이 있습니다 (예 : 새 멤버 변수를 저장할 수 없어 형식의 크기가 커짐) – Zenton