Swift
: Apple 플랫폼에서 사용할 수 있는 직관적인 프로그램 언어
: 문법 사이트
The Swift Programming Language (한국어) - Swift
The Swift Programming Language (한국어)
bbiguduk.gitbook.io
: 스타일 가이드
https://github.com/swift-kr/swift-style-guide-raywenderlich/blob/master/ko_style_guide.md
값 출력 해보기
var x : Int = 10;
print(x)
var x : Int;
x= 10;
print(x)
// error: '=' must have consistent whitespace on both sides x= 10;
// '=' 양쪽에 일관된 공백
데이터 타입
자료형
var x = 10 // 초기 값이 있을 때는 : Int를 안 적어도 된다. => 타입 추론(type inference)
print(type(of:x)) // x의 타입 확인
let s = MemoryLayout.size(ofValue: x)
let t = MemoryLayout<Int>.size
print(s, t)
//Int
// 8 8
타입 추론
var welcomeMessage: String //초깃값이 없으므로 자료형을 직접 표기함
let myAge = 25 // myAge가 Int형으로 타입 추론됨
let pi = 3.14159 // pi는 Double형으로 추론됨
let anotherPi = 3 + 0.14159 // anotherPi는 Double형으로 추론됨
Documentation
docs.swift.org
Print 사용하는 방법
: items
인쇄할 항목이 0개 이상
separator
각 항목 사이에 인쇄할 문자열
terminator
모든 항목이 인쇄된 후 인쇄할 문자열
print("1, 2, 3, 4"); // 1 2 3 4
print(1, 2, 3, 4, 5, separator: " ... ") /// 1 ... 2 ... 3 ... 4 ... 5 ...
for n in 1...5 {
print(n, terminator: "")
} // 12344
1) Int (정수 데이터 타입)
: 정수(소수점이 없는 수 )를 저장할 때 사용
\출력하고 싶은 변수/ 상수
var x : Int = 10
print(x);
print("x");
print("\(x)");
print("값은 \(x)입니다.");
print("Int32 Min = \(Int32.min) Int32 Max = \(Int32.max)");
//10
//x
//10
//값은 10입니다.
//Int32 Min = -2147483648 Int32 Max = 2147483647
2) Double (부동 소수점 데이터 타입)
: 소수점이 있는 숫자
float 타입
: 32비트로 부동 소수점 수를 저장(소수점 6자리)
double
: 64비트로 부동 소수점 수를 저장(소수점 15자리)
var myWeight : Double
var myWeight : Double = 58.5
//초깃값 58.5이 있으므로 : Double은 일반적으로 생략
3) Bool (부울 데이터 타입)
: 참 또는 거짓(1 또는 0) 조건을 처리할 데이터 타입
var orangesAreOrange : Bool
var orangesAreOrange : Bool = true
//초깃값 true가 있으므로 : Bool은 일반적으로 생략함
4) Character(문자 데이터 타입)
: 문자, 숫자 문장 부호, 심볼 같은 유니코드 문자 하나를 저장
var 변수명 : Character="초기값"; // String이 되기 때문에 Character를 생략하면 안된다.
var myChar1 : Character
var myChar2 : Character = ":"
var myChar3 : Character = "X"
5) String (문자열 데이터 타입)
: 단어나 문장을 구성하는 일련의 문자
var userName : String = "Kim" // : String 생략하는 것이 일반적임
var age = 20
var message = "\(userName)의 나이는 \(age)입니다."
print(message) // Kim의 나이는 20입니다.
6) 특수 문자/ 이스케이프 시퀀스
\n // 개행
\r // 캐리지 리턴(carriage return)
\t // 수평 탭
\\ // 역슬래시
\" "\
// 큰따옴표(문자열 선언부에 큰따옴표를 쓰고 싶을 경우에 사용됨)
\' '\
// 작은따옴표(문자열 선언부에 작은따옴표를 쓰고 싶을 경우에 사용됨)
\u{nn} // nn 위치에 유니코드 문자를 표현하는 두 개의 16진수가 배치되는 1바이트 유니코드 스칼라
\u{nnnn} // nnnn 위치에 유니코드 문자를 표현하는 네 개의 16진수가 배치되는 2바이트 유니코드 스칼라
\U{nnnnnnnn} // nnnnnnnn 위치에 유니코드 문자를 표현하는 네 개의 16진수가 배치되는 4바이트 유니코드 스칼라
변수 var
: 프로그램에서 사용될 데이터를 저장하기 위한 메모리 공간
변수에 할당된 값은 변경 가능
var myVariable = 10 // :Int
var x = 0.0, y = 0.0, z = 0.0
상수 let
: 데이터 값을 저장하기 위하여 메모리 내의 명명된 공간을 제공한다는 점에서 변수와 비슷하다
어떤 값이 한번 할당되면 이후에 변경될 수 없다.
나중에 코드에서 값을 할당할 수 있다.
var myVariable = 10 // :Int
var x = 0.0, y = 0.0, z = 0.0
튜플 Tuple
: 여러 값을 하나의 개체에 일시적으로 묶는 방법
조정되는 항목들은 어떠한 타입도 될 수 있으며, 저장된 값들이 모두 동일한 타입일 필요도 없다.
,로 구분하고 (),[]로 묶는다.
let myTuple = (10, 12.1, "Hi")
var myString = myTuple.2
print(myString) // Hi
한 줄의 코드로 튜플의 모든 값을 추출하여 변수 또는 상수에 할당
let myTuple = (10, 12.1, "Hi")
print(type(of:myTuple)) // (Int, Double, String)
let (myInt, myFloat, myString) = myTuple;
print(myInt, myFloat, myString) // 10 12.1 Hi
튜플의 값을 선택적으로 추출하는 데 사용될 수 있으며, 무시하고 싶은 값에 밑줄을 사용하면 그 값은 무시 가능하다
var (myInt, _, myString) = myTuple //12.1 무시
튜플을 생성할 때 각 값에 이름을 할당할 수도 있음
let myTuple = (count:10, lenght:12.1, message:"Hi"); //(count: Int, lenght: Double, message: String)
print(type(of:myTuple))
print(myTuple.0, myTuple.count) //10 10
=> 함수에서 여러 값들을 한 번에 반환하는 것
옵셔널
: 값을 반환할 때 오류가 발생할 가능성이 있는 값은 옵셔널 타입을 객체로 감싸서 반환합니다.
var y : Int? = 10
print(y, y!);
// Optional(10) 10
'iOS' 카테고리의 다른 글
[iOS] 함수와 매서드 (0) | 2023.10.15 |
---|---|
[iOS] 클로저 알아보기 (0) | 2023.10.06 |
[iOS] 1급 객체(1급 시민) 알아보기 (0) | 2023.10.04 |
[iOS] 기초문법 (0) | 2023.09.25 |
[iOS] 문법 - 옵서널 타입 (0) | 2023.09.18 |