Swift) 기본문법

Havi·2020년 11월 19일
0

Swift기초

목록 보기
2/19
post-custom-banner

스위프트란?

객체지향적 성격을 지닌 스크립트 스타일의 언어

Swift 기초 문법

헤더 파일 작성 x

옵씨에서와 같이 전처리에 필요한 헤더파일이 필요하지 않음
InterfaceImplementation을 통합해서 작성

대소문자 구분

var a = 30
var A = 40

a와 A는 서로 다른 변수이다.

함수와 메소드, 인스턴스 첫 글자는 소문자로
클래스, 구조체, 프로토콜등 객체의 첫 글자는 대문자로
쓰는게 관례이다.

구문 끝의 세미콜론 생략 가능

엔트리 포인트로 사용되는 main()함수가 없다.

@UIApplicationMain 어노테이션을 사용하는 객체를 지정해 앱을 시작한다.
@UIApplicationMain 이 붙은 객체는 하나뿐이어야 한다.

문자열, 문자 모두 큰 따옴표 사용

따라서 Character 타입을 반드시 명시해줘야한다.

import키워드는 라이브러리, 프레임워크 참조용

다른 객체를 호출할 때에는 프로젝트 범위의 네임스페이스가 제공되기 때문

한 줄 주석, 여러 줄 주석 처리방식 모두 사용가능

// 한 줄 주석

/*
 * 여러 줄 주석
 * 입니다.
    /*
    주석 안에 주석 사용 가능
    */
*/ ????

try ~ catch 오류처리 지원

초기에는 Optional로 처리했지만 Swift2에서부터 지원

변수와 상수

let year = 1999

라는 변수가 있을 때 1999라는 int 형 숫자 데이터는 0x12345678 ~ 0x1234567b까지 의 메모리 주소에 할당되어 있다.

따라서 year라는 단어를 사용하면 컴파일러는 메모리 주소에서 year에 연결된 0x12345678 ~ 0x1234567b의 주소를 확인하고 저장된 값을 읽어와 1999라는 데이터를 만들어 준다.

이러한 과정을 변수와 상수에 값을 저장한다고 생각한다.

상수는 변하지 않는 값, 변수는 변하는 값을 의미한다.

변수의 값을 바꿀 때는 처음 저장했던 값과 type이 일치해야한다.
변수는 선언과 초기화를 분리할 수 있다.

상수는 실수로 값이 변경되는 일을 방지하고, 값의 성격이 명확히 분류되어 관리하기 편하다.
상수는 선언과 동시에 초기화 되어야한다.

변수 이름 정의하기

변수는 알파벳, 숫자, 언더바로 정의하는 것이 좋다.
숫자가 변수명 처음에 올 수 없다.

var abc+t // (x)
var class = 1 // (x)
var 😽 = 1 // (x)
var variable = 0 // (o)

기본 자료형

Int형

Int는 [... -2, -1, 0, 1, 2 ...]등 마이너스 범위에서 0, 플러스 범위의 정수 값을 나타낼 때 사용된다.

8bit CPU를 가진 컴퓨터라면 2^8인 256개의 값 -128 ~ 127을 나타낼 수 있다.

Int는 Int8, Int16등 Int계열 서브 자료형들의 대표 자료형이당.
Int는 해당 컴퓨터의 CPU에 따라 자동으로 크기가 변하는 가변적인 자료형이다.

print(Int8.min) //-128
print(Int8.max) //127

print(Int16.min) //-32768
print(Int16.max) //32767

print(Int32.min) //-2147483648
print(Int32.max) //2147483647

// = Int.max
print(Int64.min) //-9223372036854775808
print(Int64.max) //9223372036854775807

UInt

Unsigned Integer의 줄임말로 부호없이 0과 양의 정수만 나타낸다. 따라서 Int에 비해 양수만 나타낼 경우 8bit 기준 0~255까지 효율적으로 나타낼 수 있다.

(Int 서브 자료형의 최대값 x 2) + 1

Double & Float

Double은 64bit 부동소수점 자료형, Float는 32bit의 부동소수점 자료형이다.
매우 정확하거나 매우 넓은 범위의 실수값의 경우 Double, 이외에는 Float가 사용된다.

Swift에서는 Float32와 64가 나눠져 있다.

typealias Float64 = Double

Bool

true와 false 두 논리값을 저장하기 위해 사용되며 보통 조건식에서 사용된다.

let success = true
let fail = false

String

문자열을 나타내는 자료형으로 옵씨의 NSString과 호환된다.
Swift에서 NSString을 사용하려면 import Foundation을 해야한다.

Character

한 개의 문자를 저장할 수 있는 단일 자료형
String과 마찬가지로 "" 큰 따옴표를 사용한다.

:Character를 명시해주어야 한다.

let letter1 = "s" // String
let letter2: Character = "c" // Character

타입 추론과 어노테이션

Typr Annotation이란 변수나 상수를 선언할 때 그 타입을 명시적으로 선언해 줌으로써 어떤 타입의 값이 저장될 것인지 컴파일러에게 직접 알려주는 문법입니다.

하지만 Swift의 특성중 설계에 의한 안정성에 의해 타입 추론이 가능해집니다.

//타입 어노테이션 사용
var nameWithAnnotation: Character = "a" // Character a
var numWithAnnotation: Float = 1999 // 1999.0

//타입 추론
var nameWithInference = "a" // String 로 추론
var numWithInference = 1999 // Int 로 추론

타입이 다른 변수끼리의 결합

타입을 맞춰줘야 결합이 가능하다.

var stmt = "내 몸무게는 "
var weight = 60

var weightStmt = stmt + String(weight) // 내 몸무게는 60

문자열 탬플릿

문자열 안에 다른 상수나 변수값을 포함시키는 방법

let year = 1996
let month = 1
let day = 3
let birthday = "내 생일은 \(year). \(month). \(day)입니다."

print(birthday)// 내 생일은 1996. 1. 3입니다.

멀티라인 쿼우팅

/n (return feed)를 포함해 여러 줄의 문자열을 나타낼 수 있다.

let poem = """
계절이 지나가는 하늘에는
가을로 가득 차 있습니다.
나는 아무 걱정도 없이
가슴 속의 별들을
다 헬 듯 합니다.
"""

연산자

산술연산자

단항연산자
"-" : 부호를 바꿈

이항연산자
+,-,*,/,%

삼항연산자

let result = "a" == "a" ? true : false // result = true
  • 공백을 똑같이 맞춰줘야함
    2+3 (o)
    2 +3 (x)
    2+ 3 (x)
    2 + 3 (o)

비교연산자

"<" : 작다
">" : 크다
"<=" : 작거나 같다
">=" : 크거나 같다
"==" : 같다
"!=" : 다르다

논리연산자

"!" : NOT
"&&" : AND
"||" : OR

범위연산자

let myRange = 1...5 // 1,2,3,4,5
let myRange2 = 1..<5 // 1,2,3,4

대입연산자

"="
"+="
"-="
"*="
"/="
"%="
"<<="
">>="
"&="
"^"
"|="

profile
iOS Developer
post-custom-banner

0개의 댓글