[Swift] 선언 할당 및 데이터 타입

ds-k.mo·2022년 4월 29일
0

Swift

목록 보기
1/22

상수와 변수

상수 : 변하지 않는 일정한 값 (let)
변수 : 변할 수 있는 값 (var)

let a : Int = 100
//a = 200 // Cannot assign to value: 'a' is a 'let' constant

var b : Int = 200
b = 300

let 키워드를 이용해서 선언한 값은 상수로 되어서 재할당이 불가능
var 키워드는 재할당이 가능

ex) 모바일 기기의 전체용량은 상수로, 데이터 용량은 변수로

데이터 타입

기본 데이터 타입

  • Int : 64bit 정수형
  • UInt : 부호가 없는 64bit 정수형
  • Float : 32bit 부동 소수점
  • Double : 64bit 부동 소수점
  • Bool : true, false
  • Character : 문자
  • String : 문자열
  • Any : 모든 타입을 지칭하는 키워드
  • 타입 추론
var number : Int = 10
var number = 10

Int 타입을 명시해주지 않아도 Complier가 타입을 추론할 수 있다.

컬렉션 타입

데이터들의 집합 묶음

  • Array : 데이터 타입의 값들을 순서대로 저장하는 리스트
  • Dictionary : 순서없이 key와 value 한쌍으로 데이터를 저장하는 컬렉션 타입
  • Set : 같은 데이터 타입의 값을 순서없이 저장하는 리스트

Array

// Array

// numbers의 타입은 Int를 담은 Array, 배열을 생성하려면 Array<Int> 뒤에 ()를 적는다.
var numbers : Array<Int> = Array<Int>()
// 축약된 선언법
var names = [String]()
var address: [String] = []

// append 메소드 : Array에 elements를 순차적으로 하나씩 넣는다.
numbers.append(1)
numbers.append(2)
numbers.append(3)

// [] bracket notation으로 Array의 elements에 접근할 수 있다.
numbers[0] // 1
numbers[1] // 2

// insert 메소드 : Array의 원하는 Index에(at 사용) elements를 삽입할 수 있다.
numbers.insert(4, at: 2) // [1,2,4,3]

// remove 메소드 : Array의 Index에 맞는 elements를 삭제할 수 있다.
numbers.remove(at: 0) // 1
numbers // [2,4,3]

Dictionary

// Dictionary

// dic의 타입은 Key: String, value : Int인 Dictionary, 생성하려면 뒤에 ()를 적는다.
var dic : Dictionary<String, Int> = Dictionary<String, Int>()
// 축약된 선언법
var user: [String: Int] = ["김대성": 1]

// []안에 key값을 통해 Dictionary에 값을 추가, 수정할 수 있다.
user // ["김대성": 1]
user["박소민"] = 3
user["까까"] = 5
user["까까"] = 6
user // ["김대성": 1, "박소민": 3, "까까": 6]

// removeValue 메소드 : forKey를 통해 삭제할 수 있다.
user.removeValue(forKey: "김대성")
user // ["까까": 6, "박소민": 3]

Set

// Set

// 순서가 없고, 멤버가 유일한 것을 보장하는 컬렉션 타입

var set: Set = Set<Int>()
// set는 축약형 선언이 없다.

set.insert(10) // (inserted true, memberAfterInsert 10)
set.insert(20) // (inserted true, memberAfterInsert 20)
set.insert(30) // (inserted true, memberAfterInsert 30)
set.insert(30) // (inserted false, memberAfterInsert 30)
set.insert(30) // (inserted false, memberAfterInsert 30)
set.insert(0)
set // {0, 20, 30, 10} , 중복된 멤버를 허용하지 않고, 순서도 없다.

//remove 메소드 : set의 member를 삭제할 수 있다.
set.remove(20)

// contains 메소드 : set에 포함되어있는지 bool값으로 나온다.
set.contains(10)

0개의 댓글