ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 201107 - TIL
    TIL/2021 2020. 11. 8. 02:19

    Image by Free-Photos from Pixabay  

     

     

    Swift Grammar

     

    오늘도 Keyword를 통한 복습을 했다.

     

    //: # Swift 특징
    
    // Safe, Fast, Expressive
    // OOP -> FP, POP
    
    
    
    //: # Swift 기초
    
    // Token: 나눌수없는, // 공백과 구두점으로 나눌수 없는, // Keyword, Identifier, Operator, Literal...
    // Expression: Evaluate, 한가지 값 도출, 하나이상 token
    // Statement: 하나이상 expression, 작업,
    
    // Literal: 문자그대로, 메모리 없음
    // Identifier: 이름, // 대소문자구분, 숫자로시작 X, 공백 X, Keyword X
    // Keyword: 이미 정해놓은 문자.
    
    // Compile : 4가지, Preprocess, compile, assemble, rink
    // Build: compile + 실행파일 생성
    // Runtime: 실행파일로 실행, Complie Time 이후
    
    // First Class Citizen: 3가지, 상수변수저장, 리턴가능, 파라미터로 전달가능

    알고 있는 내용을 말로 설명하는 식으로 하면서 이런식으로 playground에 키워드를 적고 책과 강의를 다시 보며 부족하거나 빠진 부분을 복습중이다.

     

    //: # Variable, Constant
    
    // 메모리에 값을 저장하는 방법
    // constant: let, stack, 초기화
    // Variable: var, 변경가능
    
    // UpperCamal: Type
    // lowerCamel: 나머지
    
    // Scope: 코드범위, {}, global, local,
    // 규칙들 : 1. 같은 스코프에서 같은이름 사용불가
    // 2. 같은 스코프에서 선언되기 전의 상수 변수를 인식을 못한다.
    // 3. 상위스코프에서는 하위스코프에 정의된 상수,변수 접근하지 못한다
    // 4. 하위는 접근이 가능하다.
    // 5. 같은 이름일떄는 가장 인접한 스코프의 정의에 따른다.

     

    //: Data Type
    
    // Int, UInt
    // 기본 8Byte
    
    // Double, Float
    // Float 4Byte, 6자리 정확도, Double 8Byte 15자리 정확도
    
    // Bool
    // true, false, 1Byte
    
    // String, Character
    // 문자열 16Byte, 문자 1Byte, ""
    
    // Type Safety: Type다르면 호환 안됨
    // Type Annotation: 직접 Type 지정
    // Type Inference: Swift가 추론, Int, Double, String, Bool 가능
    // Type Conversion: 메모리에 생성, Int() 생성자 이용 Casting과 다르다.
    // Type Alias: typealias 이름 = 존재하는 Type, 별칭붙이기 가독성up
    
    
    
    //: # Tuple
    
    // Custom Data Type
    // ()
    // Tuple의 멤버의 수는 수정이 불가능 하다.
    // 접근은 0-index, Tuple.0 Explicit Member Expression(점문법)
    // Named Tuple, (name: value), 접근은 Explicit Member Expression(점문법) , 0-index 다 가능
    // Tuple Decomposition
    let tuple = (name: "Beepeach", age: 28)
    var (name, _) = tuple
    name
    
    // Tuple matching
    
    let peopleA = (age: 30, height: 180.3, address: "Korea")
    
    if peopleA.age == 30 && peopleA.height == 180.3 && peopleA.address == "Korea" {
        print("He may be peopleA")
    }
    
    switch peopleA {
    case (30, 180.3, "Korea"):
        print("He may be peopleA")
    case (_, _, "Korea"):
        print("He lives Korea")
    default:
        break
    }
    

     

     

     

     

    728x90

    'TIL > 2021' 카테고리의 다른 글

    201110 - TIL  (0) 2020.11.11
    201108 - TIL  (0) 2020.11.09
    201106 - TIL  (0) 2020.11.07
    201104 - TIL  (0) 2020.11.04
    201102 - TIL  (0) 2020.11.03
Designed by Tistory.