[Swift 문법] 2 - 1. 기본 자료형

JJOOEE__·2024년 6월 11일
0

Swift 문법

목록 보기
3/13
post-thumbnail

🍏 1. 기본 자료형 (Primitive Types)


◻️ 1) 정수형 (Integers)

정수형은 소수점이 없는 정수 값을 저장하는 자료형입니다. Swift는 두 가지 주요 정수형을 제공합니다

① Int : +, - 부호를 포함한 정수

var age: Int = 30

② UInt : - 부호를 포함하지 않는 0을 포함한 양의 정수

var count: UInt = 50

🌈 Int와 UInt 중 선택해 사용

플랫폼에 따른 Int의 최댓값(64비트 환경이라면 Int64의 최댓값) 이상 UInt 최댓값 미만을 사용하게 되는 경우 이외 에는, UInt보다는 Int 타입을 사용하는 것이 권장된다.

예를 들어 64비트의 환경이라면 Int64의 최댓값과 UInt64의 최댓값 사이의 값을 사용하는 경우 이외에 정수 타입의 값을 변수에 담고자 할 때는 Int 타입을 사용하는것이 좋다.

그리고 양수만 사용한다고 해서 굳이 UInt를 고집할 이유가 없다. Swift는 데이터 타입에 굉장히 엄격한 언어이다. 그렇기 때문에 같은 정수라고 해도 Int와 UInt는 완전히 다른 타입으로 인식한다.

따라서 코드 안에 Int와 UInt 두 타입 모두 사용하려면 정수 타입의 변수끼리도 값을 교환할 때 많은 지원을 소모할 수도 있다.


◻️ 2) 부동 소수점 (Floating-Point)

Float와 Double은 흔히 우리가 말하는 소수점 자리가 있는 수 이죠. swift에는 64비트 부동소수를 표현하는 Double과 32비트 부동 소수를 표현하는 Float가 있습니다.

  • 필요에 따라 둘 중 하나를 선택하여 사용하면 되는데 만약 무엇을 사용해야할지 모른다면 Double을 사용하는것이 좋습니다.
  • 임의의 수 만들기
    • Swift 4.2 버전부터 임의의 수를 만드는 random(in:) 메서드가 추가되었습니다. 정수, 실수 모두 임의이 수를 만들 수 있습니다.
      Int.random(in: -100...100) / UInt.random(in: 1...30) / Float.random(in: -0.6...-1.4)

① Float : 32비트 부동 소수점 숫자를 저장합니다.

var pi: Float = 3.14

② Double : 64비트 부동 소수점 숫자를 저장합니다.

  • 분수로 변수를 만들 때마다 Swift는 자동으로 해당 변수에 Double유형을 제공합니다.
var precisePi: Double = 3.14159265359

🌈 Doubles과 Integers가 모두 필요한 이유

  • integer(Int)는 0, 1, -100 및 6500만과 같은 정수
  • double은 0.1, -1.001 및 3.141592 654와 같은 10 진수
var myInt = 1
var myDouble = 1.0

코드를 보면 둘 다 숫자 1을 포함하지만, 전자는 Int이고 후자는 Double입니다.


둘 다 숫자 1을 포함한다 하지만
var total = myInt + myDouble

위의 함수는 성립이 불가하다 왜일까?

우리는 둘 다 '1 + 1.0' 이 '2'가 될 것이라는 것을 알 수 있지만,
double은 변수(var)이므로 '1.1' 또는 '3.5' 또는 '다른 것'으로 수정할 수 있습니다.

위의 함수가 성립되지 않는 이유
1. 타입 안정성(Type Safety): Swift는 타입이 명확하고 일치해야 하며, 이를 통해 코드의 안정성을 보장합니다.
2. 정확성 보장: 정수형과 부동 소수점은 내부적으로 다른 방식으로 저장되므로, 이를 혼합하면 값의 정확성이 저하될 수 있습니다.


◻️ 3) 논리형 (Boolean)

Bool : 불리언 타입,

  • 참(true) 또는 거짓(false) 값을 저장하는 자료형
  • Swift는 값으로 true 또는 false가 할당된 모든 변수에 자동으로 부울 유형을 할당합니다.
var boolean: Bool = false
boolean.toggle() // false -> ture

let MyNameIsJoohee: Bool = true
let MyNameIsSubin: Bool = false

print("나의 이름은 주희 입니까? : \(MyNameIsJoohee)") // true
print("나의 이름은 수빈 입니까? : \(MyNameIsSubin)) // false

◻️ 4) 문자형 (Characters and Strings)

문자형은 개별 문자 또는 문자열 데이터를 저장하는 자료형입니다.

① Character

  • 단어, 문장처럼 문자의 집단이 아닌 단 하나의 문자
  • 유니코드 9(영어, 한국어, 이모티콘 등 유니코드에서 지원하는 모든 언어 및 특수기호를 사용)
  • 문자를 표현하기 위해서는 값의 앞 뒤에 큰 따옴표를 사용하여 표현합니다.
var letter: Character = "A"

② String

-String은 문자의 나열, 즉 문자열

  • 유니코드 9(영어, 한국어, 이모티콘 등 유니코드에서 지원하는 모든 언어 및 특수기호를 사용)
  • 값의 앞뒤에 큰따옴표를 사용합니다.
  • String타입 에는 기본적으로 많은 메서드와 프로퍼티들이 구현되어 있습니다.
var greeting: String = "Hello, Swift!"

🌈 Stirng은 왜 Struct 인가?

  • swift에서 구조체는 간단하고 빠르며 효율적이다, 필요한만큼 만들고 제거하기에 용이함.
  • 복사가 쉽고 안전
    값 타입은 데이터를 전달할 때 복사되므로, 데이터의 안정성이 보장됩니다. 다
    른 변수나 상수에 할당할 때나 함수에 전달할 때 예기치 않은 수정이나 부작용이 발생하지 않습니다.
  • Thread Safety
    값 타입은 스레드 안전(thread-safe)합니다. 여러 스레드에서 동시에 접근하더라도 안전하게 사용할 수 있습니다.

🌈 String의 프로퍼티 및 메서드

👆 클릭하여 링크로 이동하여 자세히 확인 가능

  • 여러가지 메서드와 프로퍼티를 공부하고 익힐 때마다 하나씩 추가하는 중
profile
개발이 어려운 나를 위한... 개발노트

0개의 댓글