KxCoding 기초 문법 #1-3

이유진·2024년 2월 29일
0

Swift 문법

목록 보기
5/9
  • 1-14
    • Boolean Literals
      • true, false
    • Boolean Type
      • 참과 거짓을 표현하고 저장하는 방법

      • 소문자로 작성

        let ishappy: Bool //상수를 Bool로 고정해준 것
        //가독성을 위해 보통 이름에 has나 is 접두어로 붙여준다
        let happy: Bool = true //or false 만 올 수 있다
        
        //Boolean 값을 가진 기본 제공 코드
        let str = "" //빈 문자열 선언
        str.isEmpty //is 보고 isEmpty의 자료형이 Bool Type인 것 유추 가능
  • 1-15
    • Strings
      • 문자열?

        “” 사이에 포함된 문자 집합
        //example
        "Have a nice day"
        "123" //숫자로 구성된 문자열
        "1" //문자의 수가 하나인 문자열
        
        let str = "1" //문자열을 상수에 저장 //String타입
        type(of: str) //타입 확인 방법
        //문자열로 저장됨
    • Characters
      • 문자?

        “” 사이에 포함된 하나의 문자

      • 하나의 문자를 문자 타입으로 지정하고 싶다면
        타입을 반드시 직접 지정해야 한다.

        let ch: Character = "1" //Character타입으로 선언
        type(of: ch) 
        //문자로 저장됨
        
        let doubleCh: Character = "AA"
        //error: '문자'타입으로 선언했기 때문에 2개 이상의 문자 저장할 수 없음
        //문자가 2개 이상이면 무조건 문자열! String 타입에만 저장 가능
        
        //1
        let emptyCh: Character = "" 
        //2
        let emptyCh: Character = " "
        // 1(error), 2(O)
        //error: Character Type에 빈 문자 저장하려면 반드시 "공백" 필요
  • 1-16
    • Type Inference
      • 형식 추론

      • 변수나 상수처럼 타입을 명시적으로 선언하지 않으면
        저장하는 값에 따라서 타입이 결정된다

        //example
        
        let num = 123
        //정수는 Integer 타입으로 추론
        //why? Intrk 정수를 가장 빠르게 처리하는 타입이기 때문에
        
        let temp = 11.2
        //실수는 Double 타입으로 추론
        
        let str = "Swift"
        //문자열은 String 타입으로 추론
        
        let a = true
        let b = false
        //참,거짓은 Boolean 타입으로 추론
        
        let value //error
        /*
        컴파일러가 메모리 공간을 만들기 위해서는 
        메모리 공간의 크기를 알아야 하고
        매모리 공간의 크기를 정하기 위해서는 "타입"을 알아야 한다
        타입이 지정되어 있지 않으면 Type Inference 형식 추론을 하는데
        값이 없으면 추론을 할 수 없다
        
        따라서 상수나 변수를 선언할 때는
        1.타입을 지정
        2.값을 저장
        둘 중 하나를 반드시 해주어야 한다!
        */
    • Type Annotation
      • 타입을 명시적으로 선언하는 방법

      • 코드가 간단하면 명시하지 않아도 추론을 잘 하지만
        코드가 복잡해지면 추론이 어려울 수 있다
        이런 경우엔 타입을 명시적으로 사용하자!

        let name: Type = value
        var name: Type = value
        //핵심은 "Type"
        //작성 방법 <변수/상수> <이름> : <타입이름> = <값>
        
        //example
        let num: Int = 123
        
        let value: Double
        value = 12.3
        //타입 부분과 저장 부분 분리해서 작성 가능
  • 1-17
    • 연산자 분류
      • 연산자 Operator: 연산에 사용하는 문자

        a + b
        → + 는 연산자, a/b는 피연산자

      • 피연산자의 수
        -Unary Operator 단항 연산자
        -Binary Operator 이항 연산자
        -Ternary Operator 삼항/조건 연산자

      • 연산자와 공백
        -공백 유무 중요하다!
        -단항 연산자는 공백 없이 사용
        -이항 연산자와 삼항 연산자는 공백 없어도 되고 있어도 되지만 있는 게 좋다. 양쪽에 동일한 공백 추가해야 한다.

      • 연산자와 위치
        -Prefix Operator 전치 연산자: 연산자가 피연산자 앞에
        -Postfix Operator 후치 연산자: 연산자가 피연산자 뒤에
        -Infix Operator 중치 연산자: 연산자가 피연산자 사이에

        //example
        Unary Operator (공백X)
        +a
        Binary Operator (공백O)
        a + b
        Ternary Operator (공백O)
        a ? b : c
        
        //
        Prefix Operator
        +a
        Postfix Operator
        a+
        Infix Operator
        a + b
    • 연산자 우선순위
      • Precedence
        Swift에서 제공하는 모든 연산자는 우선순위를 가지고 있다
      • ()
        괄호로 계산 순서를 바꿀 수 있다
        중첩해서 사용할 수 있다
    • 연산자 결합규칙
      • Associativity
        하나의 식에서 같은 연산자가 포함되어 있을 떄
        어디를 먼저 계산하는가에 따라 결과가 달라지는 경우
        를 결정하는 규칙
      • 종류
      • Left Associative 좌결합성: 왼쪽부터 계산
      • Right Associative 우결합성: 오른쪽부터 계산
      • ()
        괄호로 계산 순서를 바꿀 수 있다
        중첩해서 사용할 수 있다

0개의 댓글