[3주 - 2일차] 학습 정리

okstring·2020년 11월 19일
0

codesquad-cocoa

목록 보기
12/25

Linked List

Array는 바꾸고 빈 부분 채워야 하지만

링크드는 포인터만 바꾸면 되기 때문에 이 때 편하다

class ArrayClass {
    var _ = Array<Int>()
    
    func push(_ element: Int) {
        self.append(element)
    }
}

inout

inout의 경우에는 그 파라미터가 변경될 수 있음을 암시한다

swift에서 inout은 가급적 쓰지 않아도 된다 - 헷갈리게 되는 부분이나 메모리 관리가 복잡

Float

  • float() 안에서 연산하게되면 값이 달라질 수 있다

String

  • swift는 string을 만드는 자체가 느리다

  • String끼리 더하는 것보다 String Interpolation이 더 효율적이다

Dictionary

  • 찾을때는 Array보다 빠르지만 탐색, 정렬할때는 느리다

Access Control

fileprivate = 같은 모듈이어도 다른 소스파일이면 접근이 안된다

등위 연산자 (Equivalence Operators)

두 값 혹은 객체를 비교하는 등위 연산자 ==를 오버라이딩 할 수 있습니다. 다음은 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."
profile
step by step

0개의 댓글