전통에 따르면 새로운 언어로 된 첫 번째 프로그램은 화면에 "Hello, world!"라는 단어를 인쇄해야합니다. Swift에서는 한 줄로 수행 할 수 있습니다.
print("Hello, world!")
// Prints "Hello, world!"
Simple Values
상수를 만들고 변수를 만드는 데 사용합니다. 상수의 값은 컴파일 타임에 알 필요는 없지만 정확히 한 번 값을 할당해야합니다. 즉, 상수를 사용하여 한 번 결정하지만 여러 위치에서 사용하는 값의 이름을 지정할 수 있습니다.
var myVariable = 42 myVariable = 50 let myConstant = 42
Control Flow
조건부를 사용하고 -, , 사용하고 루프를 만듭니다. 조건 또는 루프 변수 주변의 괄호는 선택 사항입니다. 몸 주위의 중괄호가 필요합니다.
let individualScores = [75, 43, 103, 87, 12] var teamScore = 0 for score in individualScores { if score > 50 { teamScore += 3 } else { teamScore += 1 } } print(teamScore) // Prints "11"
Functions and Closures
함수를 선언하는 데 사용합니다. 괄호 안에 인수 목록과 함께 이름을 따라 함수를 호출합니다. 매개 변수 이름과 형식을 함수의 반환 형식과 구분하는 데 사용합니다.
func greet(person: String, day: String) -> String { return "Hello \(person), today is \(day)." } greet(person: "Bob", day: "Tuesday")코드를 입력하세요
Objects and Classes
클래스 이름 뒤에 클래스를 만드는 데 사용합니다. 클래스의 속성 선언은 클래스의 컨텍스트에 있다는 점을 제외하고는 상수 또는 변수 선언과 동일한 방식으로 작성됩니다. 마찬가지로 메서드와 함수 선언은 같은 방식으로 작성됩니다.
class Shape { var numberOfSides = 0 func simpleDescription() -> String { return "A shape with \(numberOfSides) sides." } }
Enumerations and Structures (열거형과 구조체)
열거형을 만드는 데 사용합니다. 클래스 및 다른 모든 명명 된 유형과 마찬가지로 열거형에는 연관된 메서드가 있을 수 있습니다.
enum Rank: Int { case ace = 1 case two, three, four, five, six, seven, eight, nine, ten case jack, queen, king func simpleDescription() -> String { switch self { case .ace: return "ace" case .jack: return "jack" case .queen: return "queen" case .king: return "king" default: return String(self.rawValue) } } } let ace = Rank.ace let aceRawValue = ace.rawValue
Concurrency
비동기적으로 실행되는 함수를 표시하는 데 사용합니다.
func fetchUserID(from server: String) async -> Int { if server == "primary" { return 97 } return 501 }
Protocols and Extensions
프로토콜을 선언하는 데 사용합니다.
protocol ExampleProtocol { var simpleDescription: String { get } mutating func adjust() }
Error Handling
프로토콜을 채택하는 모든 유형을 사용하여 오류를 나타냅니다.
enum PrinterError: Error { case outOfPaper case noToner case onFire }
Generics
꺾쇠 괄호 안에 이름을 작성하여 일반 함수 또는 유형을 만듭니다.
unc makeArray<Item>(repeating item: Item, numberOfTimes: Int) -> [Item] { var result: [Item] = [] for _ in 0..<numberOfTimes { result.append(item) } return result } makeArray(repeating: "knock", numberOfTimes: 4)
raywenderlich.com의 Swift 스타일가이드
- 정수형 숫자를 저장하는 변수
- var myNumber = 10
- myNumber라는 이름의 변수를 생성했으며, 숫자 10을 할당
- var myNumber : Int = 10 // int x = 10; // C/C++
- 위와 같이 초깃값이 있을 경우에는 컴파일러가 타입 추론(type inference)을 하므로 데이터 타입을 명시할 필요 없음
- Bool, Character, Int, Float, Double, String, Void
- var x : Int
- x= 10
- //주의 error '=' must have consistent whitespace on both sides
- '=' 양쪽에 일관된 공백이 있어야 함
- print(x) //실행결과 주석처리 방법
var x : Int = 10 print(x) // 10 x = 20 print(x) // 20드를 입력하세요
var x = 10
// int x = 10;
print(type(of:x)) //Int
let s = MemoryLayout.size(ofValue: x) //8
let t = MemoryLayout<Int>.size
print(s, t)
//실행결과
// Int
// 8 8
for i in 1...5 {
print(i, terminator:" " )
}
print(1.0, 2.0, 3.0, 4.0, 5.0, separator: " aaaaa ")
// 실행결과 : 1 2 3 4 5 1.0 aaaaa 2.0 aaaaa 3.0 aaaaa 4.0 aaaaa 5.0
정수(소수점이 없는 수)를 저장하는 데 사용
8비트, 16비트, 32비트, 64비트 정수를 지원
부호 없는 정수
애플은 특정 크기의 데이터 타입 보다 Int 데이터 타입을 권장
32비트 부호 있는 정수 데이터 타입에 대한 최솟값과 최댓값을 출력
\(출력하고 싶은 변수나 상수)
var x : Int = 10
print("x의 값은 ===> \(x)")
// 실행결과: x의 값은 ===> 10
print("Int32 Min = \(Int.min) Int32 Max = \(Int.max)")
// 실행결과: Int32 Min = -9223372036854775808 Int32 Max = 9223372036854775807
var myChar1 : Character
var myChar2 : Character = ":"
var myChar3 : Character = "X" //:Character 생략불가,생략하면 String형임
print(type(of: myChar3))
var myChar4 = "\u{0058}"
print(myChar4)
// 실행결과
Character
X
var userName : String = "Kim" // : String 생략하는 것이 일반적임
var age = 20
var message = "\(userName)의 나이는 \(age)입니다."
print(message)
// 실행결과 : Kim의 나이는 20입니다.
튜플은 스위프트 프로그래밍 언어에서 가장 강력한 기능 중 하나
여러 값을 하나의 개체에 일시적으로 묶는 방법
튜플에 저장되는 항목들은 어떠한 타입도 될 수 있으며, 저장된 값들이 모두 동일한 타입이어야 한다는 제약도 없음
let myTuple = (10, 12.1, "Hi")
인덱스 2 위치를 추출하고 그 값을 새로운 문자열 변수에 할당
let myTuple = (10, 12.1, "Hi")
var myString = myTuple.2 // myTuple.0 은 10 , myTuple.1 은 12.1
print(myString)
// 실행결과 : Hi
let myTuple = (10, 12.1, "Hi")
print(type(of:myTuple))
// 실행결과 : (Int, Double, String)
let myTuple = (count: 10, length: 12.1, message: "Hi")
print(type(of:myTuple))
print(myTuple.length)
// 실행결과
(count: Int, length: Double, message: String)
12.1
출처:iOS프로그래밍기초 (22-2학기)한성현교수님 강의 내용 변형 및 요약 3주차