Chapter 03 - 기본 문법: 이것이 바로 스위프트

zeStars Team·2021년 4월 29일
1

Swift_Study

목록 보기
2/5

Chapter 3

Published by CodePat

  • Swift : 객체 지향적 성격을 지닌 스크립트 스타일의 언어

  • 객체 지향 프로그래밍 : 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법.

3.1 Swift의 기초 문법

  • Swift는 대소문자를 구분한다.
  • 함수와 메소드, 인스턴스명의 첫 글자는 소문자로 (관례상)
  • 클래스와 구조체, 프로토콜 등 객체의 첫 글자는 대문자로
  • 주석 처리
    • 한줄 주석 : // code
    • 여러줄 주석 : / code /

3.2 변수와 상수

  • 변수 :

    • var + 변수명 로 지정
    • 필요에 따라 저장된 값을 몇 번이라도 다른 값으로 변경할 수 있다 -> 프로그램의 실행에 따라 변하는 값을 저장.
    • 최초 지정된 타입과 일치하는 타입일 경우에 다른 값으로 변경 가능.

      예) 최초에 var year: Int 로 변수 선언을 했으면, 후에 year 값은 int 타입일 경우에만 다른 값으로 변경이 가능하다.
  • 상수 :

    • let + 상수명 으로 지정
    • 한 번 저장된 값을 다른 값으로 변경할 수 없다 -> 변하지 않을 값을 지정
    • 굳이 필요에 따라 상수를 사용하는 이유 : 프로그래밍 소스 관리 목적상 변하지 않는 값은 상수에 저장하는 것이 효율적이고 실수로 값이 변경되는 일도 막을 수 있고, 값의 성격이 명확히 분류되어 관리하기도 쉽다.

3.3 자료형

  • Int : 부호(-, +)가 있는 정수값을 저장하는데 사용되는 자료형.
  • UInt : 부호가 없는 정수 -> 정수를 저장하지만 양수만 저장할 수 있다(자연수).
    • Int를 쓰면 되지 왜 UInt까지 필요한가?? -> Int 와 UInt 모두 저장할 수 있는 값의 개수가 정해져 있고, Int는 음수의 영역까지 포함하기 때문에 양수의 값만 따져봤을 때, UInt가 Int다 저장할 수 있는 값의 영역이 2배라고 볼 수 있다.

      예) Int8과 UInt8을 비교했을 때, Int8의 저장 값 범위는 -128 ~ 127 이고 UInt8의 저장 값 범위는 0 ~ 255 이다.
  • Double & Float : 둘 다 실수값을 저장할 수 있는 자료형이지만, Double 타입은 64bit 부동소수점 자료형이고 Float 타입은 32bit 부동소수점 자료형이기에 Double은 소수점 아래 15 ~ 16자리까지 Float은 소수점 아래 7 ~ 8자리까지의 값을 저장할 수 있다.
  • Bool : 참 / 거짓, On / Off 등 두가지의 조건에 대해 옳다, 그르다를 표현해주는 두 가지 종류의 값만 가질 수 있는 자료형이다. 주로 논리값을 저장하기 위해 사용된다.
  • String : 문자열을 저장하기 위해 사용되는 자료형이다.
    • string 타입 데이터 값을 표현할 때 큰따옴표를 사용한다.

      예) var projectName = "ios Study"
  • Character : string과 비슷하게 문자열을 저장할 때 사용되지만, string 타입은 여러 글자로 이루어진 문자열을 저장할 수 있지만, character 타입은 한 개의 문자를 저장할 수 있는 단일 자료형이다.
    • character 타입 데이터 값을 표현할 때에도 큰따옴표를 사용한다.

      예) var firstLetter : Character = "s"

3.3.2 타입 추론과 타입 어노테이션

  • 선언 방식 :
    • var day = 7 // 선언과 초기화를 동시에
    • var year : Int // 선언

      year = 1999 // 초기화
    • var name : String = "홍길동" // 타입을 명시한 선언

3.3.3 타입이 다른 변수끼리의 결합

  • var stmt = "꼼꼼한 재은씨의 키는"

    var height = 185

    var heightStmt = stmt + String(height)

    -> "꼼꼼한 재은씨의 키는 185"
    • Int 타입으로 선언이 된 height를 String 타입으로 바꾼것이 아닌 새로운 문자열 인스턴스를 임시적으로 만드는 것.


  • 문자열 템플릿
    • let name = "꼼꼼한 재은씨"

      let year = 2014

      let month = 10

      let day = 1

      let profile = "\(name)는 \(year)년 \(month)월 \ (day)일에 출간되었습니다."

      -> 꼼꼼한 재은씨는 2014년 10월 1일에 출간되었습니다.

3.4 연산자

  • 산술 연산자
let a = 10
let b = 2
a + b   // 12
a - b   // 8
a * b   // 20
a / b   // 5
a % b   // 0

연산자 양쪽의 공백을 일치시켜주지 않을 경우 오류가 발생할 수 있다.

  • 비교 연산자
a < b   // false
a > b   // true
a <= b  // false
a >= b  // true
a == b  // false
a != b  // true

* 논리 연산자
true && true    // true
false && false    // false
true && false     // false
false && true    // false
true || true    // true
false || false   // false
true  || flase    // true
false || true    // true

* Quiz
let a = 10
let b = 5
let c =2
a == b && a > b
a - b > b - c && b == 0

* 범위 연산자
// 닫힘 범위 연산자
1 ... 5    // 1, 2, 3, 4, 5
// 반 닫힘 범위 연산자
1 ..< 5    // 1, 2, 3, 4

* 대입 연산자
a = 1    // a에 1을 대입
a += 1   // a = a + 1
a -= 3    // a = a - 3
a *= 1   // a = a * 1
a /= 3   // a = a / 3
a %= 1    // a = a % 1
a <<= 3   // a = a << 3
a >>= 1   // a = a >> 3
a &= 3   // a = a & b
a ^= 1   // a = a^b
a |= b   // a = a | b

출처:

  • 이재은, 『꼼꼼한 재은 씨의 Swift: 문법편』, 루비페이퍼(2020), p117-178.
profile
zeStars 개발 블로그입니다

0개의 댓글