ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Swift 정리#1
    iOS/Mac 2014. 8. 4. 14:37

    The Swift Programming Language.pdf 문서를 정리한 것입니다.

    간단하게 먼저 정리하고

    추후 Objective-c와 비교도 따로 정리하여 볼 생각입니다.





    Welcome to Swift


    The Basic


    특징

    • C/Objective-C의 모든 타입 제공.

    • 참조방식

    • 튜플tuple 이라는 새로운 타입.

    • 값이 없는 경우 nil값을 가지는데 객체형만 되는 Objective-C와 달리 모든 타입이 가질 수 있음.




    상수, 변수

    var myVariable = 42    // 변수
    let myConstant = 42    // 상수


    이름 뒤에 콜른(:)으로 타입 명시적으로 지정가능

    var explicitDouble:Double = 70


    변수명

    변수명으로 유니코드 문자 사용가능.

    예약어를 변수명으로 사용하고 싶으면 back tick으로 감싼다.

    let 이름 = “홍길동"
    let `for` = 23


    변수의 출력

    var name = “Ted”
    println(name) // prints “Ted”


    문자열 안에서 변수 처리(\)

    let apples = 3
    let oranges = 5
    let appleSummary = "I have \(apples) apples."
    let fruitSummary = "I have \(apples + oranges) pieces of fruit."   // 표현식도 가능





    주석

    //

    /* 블럭 주석
    입니다.
    */





    세미콜른 Semicolons

    문장 끝 문자가 없어서 한줄에 보통 하나의 문장이 오나 여러 명령을 쓰고 싶으면 세미콜른으로 구분.




    정수 Integers

    • 8, 16, 32, 64bit형태의 정수형 제공
      UInt8, Int, Int8, UInt, Int32, UInt32, Int64, UInt64

    • 최대 최소값
      .max, .min

    let maxInt = Int.max




    실수 Flaoting-Point Numbers

    • Double: 64-bit

    • Float: 32-bit





    타입 안정과 타입 추측

    • 컴파일 시점에 타입 체크

    • 실수형 타입은 항상 Double로 간주.

    • 실수형과 정수형이 합쳐지면 Double로 간주됨.

    let anotherPi = 3 + 0.14159
    // anotherPi는 Double형.






    숫자표현 Numeric Literals


    let decimalInteger = 17
    let binaryInteger = 0b1001    // 17의 2진수 표기
    let octalInteger = 0o21       // 17의 8진수 표기
    let hexadecimalInteger = 0x11 // 17의 16진수 표기


    지수표기

    • 1.25e2 = 1.25 x 102 = 125.0

    • 1.25e-2 = 1.25 x 10-2 = 0.0125


    16진수 지수표기

    • 0xFp2 = 15 x 22 = 60.0

    • 0xFp-2 = 15 x 2-2 = 3.75


    자릿수 표기

    가독성을 위해 0나 _ 를 포함할 수 있다.

    let paddedDouble = 000123.456
    let oneMillion = 1_000_000
    let justOverOneMillion = 1_000_000.000_000_1





    숫자 타입변환

    정수변환

    let twoThousand: UInt16 = 2_000
    let one: UInt8 = 1
    let twoThousandAndOne = twoSausand + UInt16(one)// 정수 - 실수


    정수 실수 변환

    let three = 3
    let pointOneFourOneFiveNine = 0.14159
    let pi = Double(three) + pointOneFourOneFiveNine
    // pi Double형

    let integerPi = Int(pi)    // 다시 정수로.





    타입 별명 Type Aliases

    typealias RecordNo = UInt16
    var maxRecordNo = RecordNo.max




    불린

    • true/false

    • if 조건절에는 boolean값만 사용. integer 사용하면 컴파일 오류.




    튜플 Tuples

    간단하게 값들을 그룹핑할 때 유용.

    let http404Error = (404, “Not Found”)
    let http404Error = (statusCode:200, description:“OK”)
    println(http404Error.statusCode) // 200


    튜플 값 분해

    let (justTheStatusCode, _) = http404Error
    println(“The status code is \(justTheStatusCode)”)
    // print “The status code is 404”





    조건부변수 Optionals

    • 값을 가질 수도 있고 값을 가지지 않을 수(nil)도 있음.

    • C/Objective-C에 유사한 개념이 있으나 객체에 한정되어 있음. Swift에서는 모든 타입에서 가능.

    let possibleNumber = “123”
    let convertedNumber = possibleNumber.toInt()
    //convertedNumber는 조건부 변수가 됨. 타입은 ‘Int?’ 혹은 ‘optional Int’.


    강제 Forced Unwrapping

    느낌표(!)를 변수명 뒤에 붙여 값이 nil일 수 있는 것 알지만 이 상황에서는 nil이 아닌게 확실하다고 지시함.

    if convertedNum{
    println(“\(possibleNum) has an integer value of \(convertedNum!)”)
    }else{
    println(“\(possibleNum) 은 변환될 수 없음")
    }





    Optional Binding

    if let <상수명> = <어떤 조건형식> {
       <구문>
    }

    조건을 만족할 때만 상수가 할당되고 구문을 수행함.

    if let actualNum = possibleNum.toInt()
    {
    println(“\(actualNum) is integer”)
    }



    nil

    조건부 변수를 선언하고 값이 없음을 설정.

    var serverResponseCode: Int? = 404
    // 조건부 변수 선언

    serverResponseCode = nil
    // 값이 없음

    조건부 변수/상수 가 아닌 경우에 nil을 할당할 수 없음.




    (계속)...


    반응형

    댓글

Designed by Tistory.