이렇게 구현하는거 맞나요?
자바랑 자바스크립트만 할 줄 알고 스위프트는 살짝 해본게 전부인데, 생각보다 쉽지 않네요
마지막에 내주신 문제 += 에 대한 연산 메소드에 대해서 구현해봤는데 이렇게 하는게 맞나요?
extension Point {
static func +=(p1: inout Point, p2: Point) -> Point {
let ret = p1
p1.x += p2.x
p1.y += p2.y
return ret
}
}
var point1 = Point(x: 1.0, y: 2.0)
let point2 = Point(x: 3.0, y: 4.0)
point1 += point2
point1
일단 결과값으로 x, y 각각 4.0, 6.0 이 나와서 잘 작동하는것 처럼 보입니다.
그리고 inout은 값의 변화가 있는 파라미터에만 넣어주면 되는거 맞죠?
좋은 강의 감사합니다.
Answer 2
1
extension Point {
static func +=(value1: inout Point, value2: Point){
value1.x += value2.x
value1.y += value2.y
}
}
var p6 = Point(x: 1.0, y: 2.0)
let p7 = Point(x: 3.0, y: 4.0)
p6 += p7
p6
이렇게 구했습니다. inout 파라미터인 value1 의 값만 수정되도록 하면 되는거군요! 근데 모르고 - Void 를 적지 않았는데도 동작하는것 보니 Swift 에서 리턴 타입이 Void 인 경우 생략해도 되나봐요!
1
안녕하세요 :)
a += b 연산의 결과는 a = a + b 와 같고, 할당 연산자로 분류됩니다. Swift에서 할당 연산자는 연산 결과를 리턴하지 않습니다. 그래서
var a = 12
let r = a += 34
이 코드를 실행해 보시면 r의 타입은 Int가 아니라 Void입니다.
도전과제 역시 리턴 값을 사용하지 않고 inout 파라미터를 통해 값을 업데이트하도록 구현하셔야 합니다. p1 파라미터를 활용해서 동일한 결과를 얻도록 수정해 보시기 바랍니다.
Closures syntax Optimization 부분 contains 문제
0
397
1
2강, 3강
0
342
1
UI가 너무 다른것같아요;
1
339
1
강의 Optional Chaining에서 질문있습니다
0
306
1
질문
0
304
1
if랑 옵셔널 사용했는데 뭐가 잘못된걸까요? 똑같이 인덱스 범위 벗어난다고하네요
0
370
1
내장함수에 클로져 적용 이해가 잘 안됩니다.
0
310
1
선생님 질문드리겠습니다.
0
320
1
혹시 스위프트 최근 버전에서는 가변 파라미터 2개 사용할 수 있나요?
0
391
1
샘플 파일 형식이
0
357
1
xcode12 에서 #1쪽에 입력한 g2에서 에러가 발생하지 않습니다
0
266
1
insert 와 replace
0
236
1
정규 표현식 오류
0
266
1
drop while 문제
0
278
1
insert 컴파일러 오류
0
293
2
capitalized 오류
0
327
2
Index(_rawBits) 출력 문제
0
369
2
컴파일러 오류
0
367
2
iOS 템플릿에 Single View App이 뜨지 않아요.
0
288
1
에러 메세지가 떳습니다 ㅠㅠ
0
177
1
Size관련 문장에서...
0
172
1
버전이 달라서 진행에 어려움이 있습니다.
0
261
2
안녕하세요 강의 잘 듣고있습니다
0
192
1
구구단 구현에 대해서
0
265
1

