Array는 바꾸고 빈 부분 채워야 하지만
링크드는 포인터만 바꾸면 되기 때문에 이 때 편하다
class ArrayClass {
var _ = Array<Int>()
func push(_ element: Int) {
self.append(element)
}
}
inout의 경우에는 그 파라미터가 변경될 수 있음을 암시한다
swift에서 inout은 가급적 쓰지 않아도 된다 - 헷갈리게 되는 부분이나 메모리 관리가 복잡
float()
안에서 연산하게되면 값이 달라질 수 있다swift는 string을 만드는 자체가 느리다
String끼리 더하는 것보다 String Interpolation
이 더 효율적이다
fileprivate
= 같은 모듈이어도 다른 소스파일이면 접근이 안된다
두 값 혹은 객체를 비교하는 등위 연산자 ==
를 오버라이딩 할 수 있습니다. 다음은 2차원 좌표의 등위를 비교하는 ==
연산자를 오버라이딩 한 예입니다.
extension Vector2D: Equatable {
static func == (left: Vector2D, right: Vector2D) -> Bool {
return (left.x == right.x) && (left.y == right.y)
}
}
두 좌표의 x, y가 각각 같은 경우에만 같다고 판별 합니다.
let twoThree = Vector2D(x: 2.0, y: 3.0)
let anotherTwoThree = Vector2D(x: 2.0, y: 3.0)
if twoThree == anotherTwoThree {
print("These two vectors are equivalent.")
}
// Prints "These two vectors are equivalent."