와! 두 달 반만에 블로그를 쓸 여유가 드디어 생겼다!.!
퇴근하고 집가면 피곤한데 운동도 해야 되서... 사실 블로그 쓰기 커찮았어요 다들 그러잖아요
중간 근황을 설명하자면 회사에서 oauth 프로젝트를 혼자 만들어보고, 새로 API 만들고, Router 뚫고, git 충돌도 해결하고,
이 와중에 ipad도 사고 (ㅋㅋㅋㅋㅋ 12.9인치 너무 달아요 ㅋㅋ 이 썩을듯) 등등
정말 열심히 일하다가 어느 정도 짬이 찼는 지, 일처리하는 속도가 빨라져 현재 null 상태이다.
아 그리고 최근 IOS 에 관심이 생겨 중간중간 짬날 때 클론코딩도 하느라 바빴다. (블로그는 왜...?)
그래서 꾸준히 공부하다가 슬슬 블로그를 써볼까해서 지금 쓰는 중이다.
Swift 를 처음 쓰면서 느낀 점은 얘 뭐지..? Golang 같기도 하고 Typescript 같기도 한 언어이다. func으로 함수 정의하고 override 선언도 하고 forEach도 되니 짬뽕된 언어 느낌이였다. 하지만 분명 공부하면서 Swift에서 사용되는 문법이 또 있었다.(ex: this가 아닌 self로 사용) 그러나 사용하는 데에 큰 거리감은 없었다.
마침 회사에 새로 앱 개발자 분도 입사하시고 많은 정보를 얻다가 이번에 "정대리" 라는 분의 Swift 기초 강의가 잘 구성되어 있고 문법 공부하기 좋은 문서를 정리해놓으셔서 시간이 생기면 꾸준히 3일치의 문법 내용을 포스팅하려 한다.
사용된 환경은 Xcode 내에 playground를 생성하여 학습했다.
Day 1
var isDarkModeOn : Bool = true
// 조건
if (isDarkModeOn == true){
print("1. 다크모드 입니다.")
}
if (isDarkModeOn != true){
print("2. 다크모드가 아닙니다.")
}
if isDarkModeOn == true {
print("3. 다크모드 입니다.")
}
if isDarkModeOn {
print("4. 다크모드 입니다.")
}
if !isDarkModeOn {
print("5. 다크모드가 아닙니다.")
}
위 Swift 문법은 if 문으로 조건문인데 일반적으로 JS, C, Java와 다르게 괄호를 묶지 않아도 조건을 넣을 수 있다.
출력 내용은 1,3,4번이 출력될 것이다.
실행 결과
Day 2
// forEach
var myArray : [Int] = [0,1,2,3,4,5,6,7,8,9,10]
for item in myArray {
print("item : \(item)")
}
for item in myArray where item > 5 {
print("5보다 큰 수 : \(item)")
}
for item in myArray where item % 2 == 0 {
print("짝수 : \(item)")
}
위 코드는 Swift 에서 for 문을 사용하는 방법이다. 배열의 iterator 원소를 item 으로 선언하여 JS 처럼 사용할 수 있지만,
where 조건으로 반복문 내에 조건을 생성하여 해당 조건에 맞는 item을 출력하거나 return할 수 있다.
출력 내용으로 첫 번째 for문은 0에서 10까지의 Array를 출력한ㄷ.
두 번째 for문은 item > 5로 where 조건을 넣었으니 6에서 10을 출력하고
세 번째 for문은 item % 2 == 0으로 많이 본 조건일 것이다. 짝수만 출력되는 for문이다.
실행 결과
Day 3
enum School {
case elementary
case middle
case high
// 한 줄 표현 가능
// case elementary, middle, high
}
let yourSchool = School.elementary
print("yourSchool: \(yourSchool)")
enum Grade : Int {
case first = 1
case second = 2
}
let yourGrade = Grade.second
print("yourGrade: \(yourGrade)")
print("yourGrade: \(yourGrade.rawValue)")
enum SchoolDetail {
case elementary(name: String)
case middle(name: String)
func get() -> String {
switch self {
// 자기 자신인 enum case를 가져온다
case .elementary(let name):
return name + " elementary"
case .middle(let name):
return name + " middle"
}
}
}
let yourMiddleSchoolName = SchoolDetail.middle(name: "ppak-coders")
print("yourMiddleSchoolName: \(yourMiddleSchoolName.get())" )
이번엔 enum을 표현하는 방법이다. enum은 타입을 나눈다고 보면 된다.
처음 구문을 보면 School이라는 enum을 선언하여 각 case를 정의하였다.
그러면 yourSchool에는 School의 case를 접근하여 elementary가 저장된다.
다음 Grade라는 enum을 Int Type으로 선언하고 각 case first와 second에는 각각 int 값 1,2 value를 가리킨다.
그럼 yourGrade.rawValue가 2를 가져와 출력한다.
다음 SchoolDetail은 함수 정의 enum이다.
각 case에 함수를 파라미터 값을 정의하고,
func 함수 get 으로 String 인자를 받아 switch case문으로 self.{정의된 case}(let name)체크하여
최종적으로 name값을 반환한다.
실행 결과
'iOS > Swift 문법' 카테고리의 다른 글
Swift 기초 문법 - 클로저 (2) (1) | 2022.09.29 |
---|---|
Swift 기초 문법 - 클로저 (1) (0) | 2022.09.28 |
Swift 기초 문법 - 프로퍼티 옵저버, 함수 매개변수, 제네릭 (0) | 2022.09.20 |
Swift 기초 문법 - for 반복문, 변수 unwrapping, struct와 class 차이 (0) | 2022.09.02 |