스위프트가 제공하는 자료형
Int | |
Double | |
Float | |
String | |
Array | |
Set | |
Dictionary |
C와 같이 이름을 설정해 값을 저장할수있습니다.
C언어보다 강력한 값이 변하 지않는 Constant(상수)설정이 가능합니다.
Tuples(튜플)로 값들을 그룹 지을 수 있습니다.
튜플을 통해 리턴값 여러개 받기가 가능합니다.
상수와 변수
상수 - 처음 설정된 값은 바뀌지않지만 추후에 다른 값으로 바뀌도록 설정할 수 있습니다.
상수와 변수 정의하기
상수와 변수들은 사용하기 전에 선언이 되어야합니다.
상수는 let 라는 키워드로
변수는 var 이라는 키워드로 선언합니다
let num = 10
var num2 = 0
또한 다중으로 선언이 가능합니다
var x = 0.0, y = 0.0, z = 0.0
바뀌지 않는 값이 있다면 let 키워드로 지정하십시오
타입 주석
저장할수있는 자료형을 나타내는 방법입니다
var welcomeMessate : String
String 자료형을 변수 welcomeMessage에 저장될수 있다는 뜻입니다.
어떠한 에러없이 String 을 넣을 수 있습니다.
welcomeMessage = "Hello"
한줄에 선언되있는 값에 대해서도 타입 주석이 가능합니다
var red, green, blue: Double
타입주석없이 사용할경우 스위프트가 자동으로 자료형을 해석해서 부여합니다
상수와 변수의 이름에는 공백, 수학기호, 화살표, 사설유니코드포인트, 선 및 사각형문자
숫자로 시작, 이름사이에 숫자는 가능
특정 타입을 선언할 경우 같은 이름으로는 선언이 불가하고 바꿀수 없다.
상수 변수간의 타입변환은 안된다.
스위프트 키워드를 이름을 정하고자 할때 (')로 감싸서 선언하면된다.
변수간의 값 변경은 가능하지만 상수인경우 바꾸지 못한다
콘솔에 상수와 변수 출력
print(firendName)
//Tom
print("My friend name is \(friendName)")
//My friend name is Tom
세미콜론
다른언어와는 다르게 세미콜론(;)을 사용하지 않습니다
사용하할 경우에는 한줄에 여러개의 문장을 작성할때 입니다
let cat = "neko"; printf(neko)
정수
부호있는 signed 그리고 부호없는 unsigned 정수는 8, 16, 32 ,64 비트 형식입니다.
var a: UInt8
var b: Int32 와같이 선언 가능
정수 경계
let minValue.= UInt8.min
//0
let maxValue = UInt8.max
//255
부호없는 8비트 표현범위 0~255 총 256개
굳이 특정사이즈를 선택하지않아도 됩니다. 자동으로 운영체제 비트에 맞춰 바꿔줍니다
부동소수점
Double 64bit
Float 32bit
의 부동소수점 표현
스위프트는 안전지향 언어로서 자료형 지정없어도 알아서 지정해줍니다. 컴파일 시 자료형이 맞지않을 경우 검출도 합니다
숫자표현
10진수 접두사없음
바이너리 0b
8진수 0o
16진수 0x
1.25e2 == 1.25 * 10^2
범위다른 형식 덧셈
let twoThousand: UInt16 = 2_000
let one: UInt8 = 1
let twoThousandAndOne = twoThousand + UInt16(one)
형변환을 통한 덧셈이 가능
타입별명
typealias AudioSample = UInt16
UInt16을 AudioSample 이라는 이름으로 변수선언이 가능하다
var max = AudioSample.min
//0
불린
var aa = true
var bb.= false
if 문에서
let I = 1 과같이 숫자로 지정된경우에는 판별이 안된다
if I == 1 인 경우에는 사용가능
튜플
여러개의 자료형을 이용 가능
let http404Error = (404, "Not Found")
스위프트가 자동으로 첫번째는 Int 두번쨰는 String 형식으로 지정한다
let (statusCode, statusMessage) = http404Error
변수명도 여러개로 넣을수있다.
특정값을 무시하고싶은 경우애는 언더바 _ 로 표시한다
let (justThis, _) = http404Error
print 에서 표현방법
인덱스로 접근
print("This status Code is \(http404Error.0)")
//This status Code is 404
인덱스에 변수명으로 접근
let http200Status = (statusCode: 200, description: "OK")
print(http200status.statusCode)
var a ,b ,c: String?
String형으로 nil값을 넣어논다