일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 이런 사람에게 "절대" 돈과 시간 쓰지 마세요. (이헌주 교수 3부)
- 직선의방정식
- kgol
- 다자녀장학금
- 등록금0원
- 데이터베이스시스템
- playground배열
- 합의정리
- 최단경로문제
- 숫타니파아타
- 무소의뿔
- 맥북에서 wxMaxima 설치
- 집착형
- wxMaxima install for mac os
- 그래프2
- 오일러투어
- 오블완
- 티스토리챌린지
- 청년도배사 이야기
- 아이엔이야기
- 이분그래프
- 배윤슬
- 2023채용박람회
- 정보처리기사공부방법
- 나르시스트
- 쌍대성원리
- 허스켈그래프
- 제거된값 첨부하기
- 윤파고
- wxmaxima
- Today
- Total
사적공간
swift 기본문법 본문
출처 :꼼꼼한 재은씨의 swift 문법/이재은/루미페이퍼
swift는 객체지향형 성격을 지닌 스크립트 스타일 언어
헤더파일 작성 필요 없음 : 헤더파일과 소스파일이 통합된 하나의 *.swift 파일에서 필요한 내용을 자유롭게 정의하고 사용하면 됨.
클래스와 구조체를 선언시에 정의와 구현을 분리하지 않고 통합하여 작성.
헤더파일 : 전역변수 선언 담당 / 소스파일 : 선언된 함수 구현
대소문자 구분함. / 함수와 메스도, 인스턴스명의 첫글자는 소문자, 클래스와 구조체 프로토콜 등의 객체의 첫 글자는 대문자.
구문 끝 세미콜론 불필요,
엔트리 포인트(시작점)으로 사용되는 main()함수가 없음. @UIApplicationMain 어노테이션을 쓰서 앱을 시작하는 객체를 지정하며, 이건 하나뿐임 .
문자열 뿐만 아니라 문자도 큰따옴 표를 씀, 그래서 명시적으로 타입 어노테이션으로 문자는 Chareacter 타입을 지정해 주어야 함.
impfort 키워드를 사용하지만, 라이브러리와 프레임워크의 참조 용도임. c처럼 객체가 정의된 헤더파일을 반입하는 용도가 아님.
c나 자바처럼 한 줄 주석, 여러 줄 주석 처리 방식을 모두 사용할 수 있음. 주석안에 주석을 쓰는 것도 가능
try ~catch 방식의 오류 처리를 지원함. 함수나 메소드가 리턴값 또는 매개변수를 이용하지 않고 외부로 직접 오류를 던지는 걸 말함 . 그 대신 오류 방지인 옵져널을 권고함.
초기화 과정에서 변수나 상수의 타입이 결정됨 .타입추론기에 의해서
변수는 선언과 초기화를 분리할 수 있지만, 상수는 아니다.
알파벳과 한글 자음 및 모음, 아라비아 숫자를 사용할수 있으며 특수기호나 한자, 이미지용 바이너리 코드까지 변수와 상수이름을 쓸 수 있음.
연산자와 혼동할 수 있는 [+,-,*,/] 및 백은 변수, 상수이름으로 사용할 수 없음. 단 언더바_ 는 가능.
스위프트에서 예약어나 키워드로 등록되어 있는 단어는 변수나 상수이름으로 사용할 수 없음. 단 대소문자를 바꾸어 사용하는 것음 가능 .
변수, 상수명의 첫 번째 자리에 숫자가 올 수 없음.
정수와 실수를 연산하면 실수로 처리됨.
8bit = 256개 값 저장가능. 표현 범위는 -128 ~ 0~127(128개씩 2개)
UInt, 부호없는 정수 0부터 양수 방향으로만 카운트함.
double(64), Float(32)
bool = true, false
string은 character + character ... 임
타입 어노테이션을 해야 하는 경우 두 가지 : 1. 선언과 초기화를 분리할 경우 2. 타입 추론이 얻어지는 타입이 아닌, 다른 타입을 저장할 필요가 있을 때 ex) Int 대신 float나 doble을 쓰거나, string 대신 character 를 쓸 때, double 대신 float 를 쓸 때.
타입 변경은 ' 바꾸고 싶은 타입(바꿀타입)'
-> 문자열 템플릿으로 편해짐 '\( 변수나 상수 )
스위프트는 " " 더블 쿼우팅을 생략하고 변수에 값을 집어 넣었을 때, 이것을 문자로 보지 않고 의미저긴 해석을 시도한다.
1. 예약어, 키워드 판단
2. 함수나 클래스, 구조체, 열거형.. 객체 타입 이름인지 확인하고
3. 변수나 상수로 정의된 건지 확인한다.
문자와 문자열 모두 더블 쿼우팅으로 처리함.
1. 주어진 타입 a와 b에 동시에 속하는 경우, 더 넓은 범위의 타입으로 결정함.
2. 더 작은 범위의 타입으로 정의하려면 반드시 타입 어노테이션을 통해 명시적으로 선언함.
스위트프에서 여러 줄 문자열 처리하는 방법
멀티 라인 스트링
범위 연산자
값 사이의 범위를 일정한 정수 간격으로 표현하는 연산자임.
-닫힌범위 연산자 1...3
-반 닫힌범위 연산자 1..<3
여러 줄로 작성해야 하는 구문은 세미콜론 ; 으로 구분함.
var i - 0 ; i =i + 1 ; print("reuslt = \( i )" )
코드블록은 { }로 구성
for <루프상수> in <순회대상> {
<실행할 구문>
}
<순회대상> 데이터 타입 : 배열, 딕셔너리, 집합, 범위데이터, 문자열
루프상수의 생략
while true .. 는 무한루프
repeat ~ while 문은 do ~ while 문과 같음
스위프트는 if 조건문에서 0과 1을 허용하지 않음.
if 문을 여러개 쓰면 조건이 맞는 것을 찾아도 남은 if문의 조건을 계속 확인하는 반면 여러개의 if문으로 인식하고
else if 문의 경우에는 찾으면 끝나고, 하나의 구문으로 인식함.
동시에 일어날 수 없는 이율배반사건을 만족하기 위해 if else문이 있음.
guard 구문은 주로 후속코드들이 실행되기 전에 특정 조건을 만족하는지 확인용도로 씀. 특정조건을 만족하지 않으면 조기종료를 위한 목적임. 그래서 <조건식 또는 표현식의 결과가 false 일 때 실행될 코드 >에 return이나 break문 같은 구문이 포함됨. gurard문은 참이면 실행하지 않고, 거짓이면 코드블럭을 실행하게 되어 있음.
guard < 조건식 또는 표현식> else {
<조건식 또는 표현식의 결과가 false 일 때 실행될 코드 > }
API가 버전을 탄다. : ios 버전이 업그레이드 될 때마다 개량을 거듭하여 동일한 api에 버전이 다른 ios에서의 사용이 종종 제한되기 때문임. 그래서 공식문서 확인해서 사용 가능한 os 버전을 확인해야 함. 그때 #available 문을 사용함.
if #available(<플랫폼이름, 버전>, <...>,<...>,<*>) {
<해당 버전에서 사용할 수 있는 API 구문>
} else {
<API를 사용할 수 없는 환경에 대한 처리>
}
스위프트의 switch 구문은 일치하는 비교 패턴이 있을 경우 해당 블록의 실행 코드를 처리하고, 더이상의 비교 없이 전체 분기문을 종료함. 설사 일치하는 분기문이 여러개 있다 하더라도 맨 처음 일치하는 case 구문 하나만 실행함.
fallthrough 구문은 명시적으로 작성해야 함.
제어전달문은 아래와 같이 있음.
break
continue
fallthrough
return
반복문이나 조건문들을 중첩하여 사용할때, break 문이나 continue 문의 흐름제어가 어디서 일어나야 할지 명확하지 않다.
그래서 반복문이나 조건문의 특정구문에 레이블을 붙이고 이 레이블을 break 나 continue. 문에 붙여서 정확한 흐름제어를 만든다.
'ios > 문법' 카테고리의 다른 글
Swift 구조체와 클래스: 객체지향 스위프트 (0) | 2023.03.09 |
---|---|
Swift 함수 (0) | 2023.02.22 |
옵셔널 Optional (0) | 2023.02.22 |
swift 집단 자료형 (0) | 2023.02.17 |