단숨에 애플 스위프트(Swift) 배우기
2018.08.14 08:18
단숨에 애플 스위프트(Swift) 배우기
기존 개발자를 위한 정리입니다. 개인적으로 액션스크립트와 많이 유사해서 좋네요. 1. 끝에 세미콜론(;) 없는게 관행 (있어도 무관)
2. 대소문자 구분함
3. 주석
한 줄 ::
//
여러 줄 ::
/* */
4. 변수 정의
1
2 3 4 5 6 7 8 9 |
// 변수
var str:String = "Hello World" // 상수 :: (Int는 Int64와 동일) let age:Int = 21 //nil(빈값)으로 초기화 (Optionals) var opt:Int // 초기화 안됨 (Error!!) var opt:Int? // nil로 초기화 |
5. 조건문 (&&, || 사용)
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
if (age < 20) {
} else if (age == 20) { } else { } switch (age) { case 15...20: // 15 ~ 20 break; case 21: break; default: // 반드시 필요 } var result:String = ((age < 20) ? "A" : "B") print("result=\(result)") // result=B |
6. 반복문
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 32 33 34 35 36 37 |
for (var i:Int = 0; i < 10; ++i) { // 이건 스위프트 3.0에서 없어질 예정
print(i) // 0 ~ 9 } // for var i:Int in 0..<10 { // for i in 0...9 { for i in 0..<10 { print(i) // 0 ~ 9 } var i:Int = 0 while (i < 10) { print(i) // 0 ~ 9 ++i } i = 0 repeat { print(i) // 0 ~ 9 ++i } while (i < 10) var arr:Array = ["AAA", "BBB", "CCC"] for var prop:String in arr { // for prop in arr 가능 print(prop) // AAA, BBB, CCC } var arr2:Dictionary = [ "a" : "AAA", "b" : "BBB", "c" : "CCC" ] for (k, v) in arr2 { print(k, v) // b BBB, a AAA, c CCC } |
7. 함수 (함수 정의 후 호출을 권장, 파라미터 초기화 가능)
1
2 3 4 5 6 7 8 9 10 11 12 13 14 |
// 반환값이 1개일 경우
func call(value:Int=333) -> String { print(value) // 111, 333 return "OK" } print(call(111)) // OK print(call()) // OK // 반환값이 2개 이상일 경우 func get() -> (result1:String, result2:Int) { return ("AAA", 111) // 튜플로 반환 } var tup = get() print(tup.result1, tup.result2) // AAA 111 |
8. 배열
1
2 3 4 5 6 7 8 9 10 |
// var arr:[String]
var arr:Array = ["AAA", "BBB", "CCC"] print(arr[0]) // AAA print(arr.count) // 3 print(arr.removeLast()) // CCC print(arr) // ["AAA", "BBB"] print(arr.removeAtIndex(1)) // BBB arr.append("DDD") // arr += ["DDD"] 가능 arr.insert("EEE", atIndex:1) print(arr) // ["AAA", "EEE", "DDD"] |
9. 딕셔너리
1
2 3 4 5 6 7 8 |
var emptyDic:Dictionary = [String:Int]()
var dic = ["a":1, "b":2, "c":3] print(dic.count) // 3 dic["c"] = nil print(dic.count) // 2 dic["b"] = 4 dic.updateValue(5, forKey: "a") print(dic) // ["a":5, "b":4] |
10. 세트
1
2 3 4 5 6 7 8 |
var s:Set<String> = []
var s2:Set = ["AAA", "BBB"] // 동일한 타입만 가능 print(s2.count) // 2 s2.insert("CCC") s2.remove("AAA") print(s2) // ["BBB", "CCC"] s2.removeAll() print(s2.count) // 0 |
11. 튜플
1
2 3 4 5 6 7 8 9 10 |
var tup = (blog:"WonHada.com", from:2015)
print(tup.0) // WonHada.com tup.0 = "Kangmin Won" print(tup.blog) // Kangmin Won print(tup.from) // 2015 // 튜플은 Value Type var tupCopy = tup tup.0 = "Changed" print(tupCopy.0) //"Kangmin Won" |
12. 열거형
1
2 3 4 5 6 7 8 9 |
enum State {
case PLAYING case PAUSED case STOPPED } var s1 = State.PLAYING var s2:State = .STOPPED if (s2 == State.PAUSED) { } |
13. 클로져
1
2 3 4 5 6 7 8 9 10 |
// 함수
func sumFunc(a:Int, b:Int) -> Int { return a + b } // 클로져 (함수의 'func sumFunc' 빼고, in 추가) var sumClosure = {(a, b) -> Int in return a + b} print(sumFunc(1, b:2)) // 3 print(sumClosure(1, 2)) // 3 |
14. Getter / Setter
1
2 3 4 5 6 7 8 9 10 11 12 13 |
var _v:Int = 0
var value:Int { get { return _v } set { _v = newValue print("_v=\(_v)") //_v=10 } } print(value) // 0 value = 10 |
15. 클래스
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 32 33 34 35 36 37 38 39 40 41 |
class Person {
// 프로퍼티 class var mom:String { get { return "Mommy" } } var name:String var age:Int // 생성자 (초기화) init() { self.name = "none" self.age = 0 } // 생성자 오버로딩 init(name:String, age:Int) { self.name = name self.age = age } // 메소드 func sing() -> Void { print("Let it go~") } } print(Person.mom) var p1 = Person(name:"Elsa", age:21) p1.sing() // 상속 class Anna : Person { override func sing() { print("Love is an open door~") } } var anna = Anna(name: "Anna", age: 18) anna.sing() |
[출처] https://blog.wonhada.com/?p=1849
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.