처음부터 차근차근

Swift의 변수와 상수, 튜플 본문

프로그래밍/Swift

Swift의 변수와 상수, 튜플

_soyoung 2021. 9. 12. 16:20
반응형

주의할 점!

iOS의 스펠링

Objective-C 스펠링

Swift, SwiftUI 스펠링

 

데이터 타입

 

- Bool

- Character

- Int

- Float

- Double

- String

- Void (함수 반환형식 없을 때)

 

변수와 상수

 

상수(variable) : 한번 값을 할당하면 다시는 값을 할당할 수 없다.

변수(constant) : 값을 초기화해도 값을 바꾸고 싶으면 값을 대입할 수 있다.

 

변수와 상수 선언 예

// 변수나 상수를 선언할 때는 타입 어노테이션을 써서 데이터 타입을 명시해야한다.
var variableTest : Int // 변수 선언
let constantTest : Int // 상수 선언

 

변수와 상수 초기화 예

 // 상수 초기화
let number1 = 10 // .... 방법1
let number1 : Int = 10 // .... 방법2

// 변수 초기화
var number2 = 10 // .... 방법1
var number2 : Int = 10 // .... 방법2

방법1 : 

저렇게 초깃값이 있으면 굳이 데이터 타입을 쓰지 않아도 컴파일러가 타입 추론( = 타입 인퍼 type infer)을 하여 데이터 타입을 알아낸다. 

infer = 추론하다

 

방법2 : 

방법1과 다르게 데이터 타입을 명시하는 방법이다. 저렇게 개발자가 직접 쓴 데이터 타입을 타입 어노테이션이라고 한다. 타입 어노테이션은 특별한 경우(Character type이나 Float type 등)를 제외하면 일반적으로 생략한다.

 

주의할점!

'='을 쓸 때 ' ='나 '= '처럼 양쪽에 공백이 일정하지 않으면 error가 나온다. 공백을 일정하게 ' = ' 이렇게 만들어야 한다.

 

+ 애플에서는 코드의 효율성을 위해서 되도록 상수를 사용하는 것을 권장한다고 한다.

 

각 타입별 변수 초기화 예

// Int형은 위에 나오므로 생략한다.

// Double형
var number = 10.5
var number1 : Double = 10.5

// Float형
// Float형은 타입 어노테이션을 생략하면 Double형이 되어버리기 때문에 꼭 타입 어노테이션을 적어줘야 한다.
var number : Float = 10.5

// Bool형
var boolVariable = true // 일반적으로 이걸 씀
var boolVariable : Bool = true

// String형
var stringVariable = "apple"
var stringVariable : String = "apple"

// Character형
// Character형은 타입 어노테이션을 생략하면 String형이 된다.
// 작은따옴표(')를 쓰면 안되고, 큰따옴표를 써야한다(").
var charVariable = "a"

 

여러 코드들
print(type(of:a)) // 변수 a의 데이터 타입이 출력됨

print(MemoryLayout.size(ofValue:a)) // 변수 a의 데이터 타입의 크기(byte)가 출력됨

print(MemoryLayout<Int>.size) // Int의 데이터 타입의 크기(8byte가 출력됨)

var a = "Hello"
print("\(a) World!") // 출력하고 싶은 변수나 상수가 있으면 \(변수 or 상수)

print("\u{41}") // 유니코드로 a출력 : \u{유니코드}

 

튜플

 

여러 개의 값을 하나의 개체로 묶은 것

 

 

튜플의 특징

 

  • 튜플 안에는 다양한 자료형이 들어가도 된다. (그래서 실제로 튜플의 데이터 타입을 출력하면 (Int, Double, String)이런식으로 안에 들어간 값의 자료형이 나온다)
  • 인덱스로 접근할 수 있다.  ex) 튜플명.인덱스

 

튜플 예

let tup = ("soyoung", 21, 1.5) // 튜플 초기화

print(tub.0) // 이런식으로 인덱스를 사용해서 접근할 수 있다. 결과 : Hello

let (name, age, number) = tup // name, age, number에 값을 하나하나씩 할당
// == let name = "soyoung", age = 21, number = 1.5
                            
var (name, age, _) = tup // _는 값 무시하고 싶을 때 사용

let tup2 = (name : "soyoung", age : 21, number : 1.5) // 이렇게 초기화하면
print(tup2.name) // 이렇게 접근 가능,  결과 : soyoung

 

 

 

 

 

출처 : iOS프로그래밍기초(21-2학기)한성현교수 강의 내용 변형 및 요약

반응형

'프로그래밍 > Swift' 카테고리의 다른 글

Swift 문법 정리 3  (0) 2021.09.26
Swift 실습 3  (0) 2021.09.25
Swift 문법 정리 2  (0) 2021.09.17
Swift실습2  (0) 2021.09.17
Swift의 변수와 상수, 튜플 - 실습  (0) 2021.09.16
Comments