Swift 기초 문법 <1>

구찌댕댕이·2022년 6월 15일
0

swift 기초 문법

목록 보기
1/12
post-thumbnail

데이터 타입(자료형)

var mynumber = 10  //mynumber라는 이름의 변수를 생성, 숫자 10을 할당
//초기값이 있으면 컴파일러가 타입 추론하기에 데이터 타입 명시할 필요가 없다.
var welcomeMessage: String  //초기값이 없기때문에 자료형을 직접 표기함

print(1.0, 2.0, 3.0, 4.0, 5.0, separator: " ... ") // 사이사이에 ... 삽임됨

for n in 1...5 {
    print(n, terminator: "    ")
}                   // 사이사이에 띄어쓰기함 (하지 않으면 n이 한줄에 하나씩 나오게 됨)

var x = 10
print(type(of:x)) // 타입이 무엇인지 알 수 있다.
let s = MemoryLayout.size(ofValue: x) // 메모리에 저장된 바이트를 알 수 있다.
let t = MemoryLayout<Float>.size // 타입을 변경하여 메모리에 저장된 바이트를 알 수 있다.
print(s, t)

정수 데이터 타입 : Int

정수 : 소수점이 없는 수. Int
8,16,32,64비트 정수 : Int8 / Int16 / Int32 / Int64
부호없는 정수 : UInt / UInt8 / UInt16 / UInt32 / UInt64
애플은 특정 크기의 데이터 타입 보다 Int데이터 타입을 권장

print("Int32 Min = \(Int32.min) , Int32 Max = \(Int32.max)")
// 출력하고 싶은 변수나 상수 : \() 사용한다. 괄호 안에 변수나 상수 이름을 넣는다.

부동 소수점 데이터 타입 : Double

Float : (32비트, 소수점 6자리)
Double : (64비트, 소수점 15자리) -> 기본형

//Double형이 기본이다.
var myWeight : Double = 72.5  //초기값이 있으므로 타입명은 생략 가능

부울 데이터 타입 : Bool

(true / false)
참 또는 거짓 (1 또는 0) 조건을 처리할 데이터 타입

var orangeAreOrange = true

문자 데이터 타입 : Character

문자, 숫자, 문장 부호, 심볼 같은 유니코드 문자 하나를 저장
초기값은 작은따옴표가 아닌 큰 따옴표 사용

var myChar2 = "\u{0058}" //유니코드로 할당 가능
print("myChar: \(myChar) , myChar2: \(myChar2)")

문자열 데이터 타입 : String

단어나 문장을 구성하는 일련의 문자
저장, 검색, 비교, 문자열 연결, 수정 등의 기능을 포함
문자열 보간(string interpolation)을 사용하여 문자열과 변수,상수,표현식,함수 호출의 조합으로 만들 수 있다.

var name = "choi"
var age = 32
var mAge = 1
var message = "\(name)의 나이는 만\(age - mAge)세 입니다."
print(message)

변수 : var

프로그램에서 사용될 데이터를 저장하기 위한 메모리 공간
할당된 값은 변경 가능

var a = 0.0, b = 0.1, c = 0.2 // 여러개를 한줄로 가능

상수 : let

데이터 값을 저장하기 위하여 메모리 내의 명명된 공간을 제공한다는 점에서 변수와 비슷
할당된 값은 변경 불가
코드내에서 반복적으로 사용되는 값이 있을 경우 유용

let number10 = 10
//코드의 효율성과 실행 성능을 높이기 위해 변수보단 상수를 사용 권장

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

변수나 상수가 선언되는 시점에 타입 어노테이션(직접 타입 선언) 과 타입 인퍼런스(컴파일러가 타입을 추론)
상수를 선언할 때도 타입 어노테이션을 사용하면 나중에 값을 할당 가능하다

튜플

여러 값을 하나의 개체에 일시적으로 묶는 방법
튜플의 가장 강력한 점은 함수에서 여러 값들을 한번에 반환하는것 -> 튜플로 리턴
튜플에 저장되는 항목들은 어떠한 타입도 될 수 있으며, 저장된 값들이 모두 동일한 타입이어야 한다는 제약도 없다.
특정 튜플 값은 인덱스 위치를 참조하면 간단하게 접근 가능


let myTuple = (10, 12.1, "hi")
var myString = myTuple.2
print(myString) // myTuple의 0번째,1번째,2번째 중 2번째의 값을 가져온다.

// 단 한줄의 코드로 튜플의 모든 값을 추출하여 변수, 상수에 할당 가능
var (myInt, myFloat, myString2) = myTuple
print(myInt) //myTuple 에서 0번째의 myInt를 출력함

// 튜플에서 선택적으로 추출하고 싶을때, 무시하고 싶은 값에 밑줄을 사용하면 그 값은 무시
var (myInt2, _, myString3) = myTuple
print(myString3)

// 튜플을 생성할 때 각 값에 이름을 할당 가능
let myTuple2 = (count: 10, length: 12.1, message: "hi")
print(myTuple2.length)  // myTuple2의 length값을 출력

출처 : https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA

profile
개발자를 꿈꾸는 사람 입니당

0개의 댓글