일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 서블릿
- java
- 파이썬
- 광주직업학교
- 코린이
- 자바페스티벌
- 자바
- 덴디컨설팅
- 문제풀이
- K디지털크레딧
- 전주스터디카페
- 스마트인재개발원
- 전주독서실
- 리스트
- jsp
- 바이트디그리
- 내일배움카드
- ux
- Python
- 자바스크립트
- 코딩
- ui
- 메시지시스템
- 딥러닝
- 썸머스쿨예약
- 머신러닝
- 빅데이터
- iOS개발강의
- 스프링
- 패스트캠퍼스
- Today
- Total
멀리 보는 연습
iOS 개발 강의 정리_Swift 기본 문법 본문
상수와 변수
// 상수
// let 상수명 : 데이터 타입 = 값
let a : Int = 100
// 변수
// var 변수명 : 데이터 타입 = 값
var b : Int = 200
예시
아이폰의 용량은 전체 공간, 사용 가능 공간으로 나뉘는데 전체 공간은 128GB와 같이 한 번 지정되면 변하지 않기 때문에 상수 타입이 적당하고, 사용 가능 공간은 수시로 변경되기 때문에 변수가 적당하다.
기본 데이터 타입
import Foundation
//Int
var someInt : Int = -100
someInt = 100
//UInt '-'와 같은 부호 사용 불가
var someUInt : UInt = 200
//Float
var someFloat : Float = 1.1
someFloat = 1
print(someFloat)
//Double
var someDouble : Double = 1.1
someDouble = 1
//Bool
var someBool : Bool = true
someBool = false
//Character
var someCharacter : Character = "가"
someCharacter = "A"
someCharacter = "😎"
//String
var someString : String = "안녕하세요🥰"
//타입 추론
var number = 10
var 변수명 : 데이터 타입 = 값
타입 추론이 신기한데 타입 추론은 데이터 타입을 입력하지 않고, var 변수명 = 값 만 입력해주면 컴파일러가 자동적으로 데이터 타입을 지정해준다고 한다. 넘나리 신기한 것...한가지 궁금한 점은 타입 추론을 알아서 해주는데 굳이 타입까지 선언할 필요가 있나..?
컬렉션 타입
데이터들의 집합 묶음
1. Array : 데이터 타입의 값들을 순서대로 저장하는 리스트
2. Dictionary : 순서 없이 키(key)와 값(value) 한 쌍으로 데이터를 저장하는 컬렉션 타입
3. Set : 같은 데이터 타입의 값을 순서없이 저장하는 리스트
1. Array(배열)
//배열
// 배열을 선언하는 방법 1
var numbers : Array<Int> = Array<Int>()
//순서대로 배열에 담긴다.
numbers.append(1)
numbers.append(2)
numbers.append(3)
numbers[0]
numbers[1]
// 추가
numbers.insert(4, at: 2)
// 삭제
numbers.remove(at: 0)
numbers
// 배열을 선언하는 방법 2
var names1 = [String]()
// 배열을 선언하는 방법 3
var names2 : [String] = []
배열을 선언하는 방법을 세가지 정도 배웠다.
- var 변수명 : Array<데이터타입> = Array<데이터타입>()
- var 변수명 : 데이터타입
- var 변수명 : [데이터타입] = []
너무 헷갈리는군...
2. Dictionary(딕셔너리)
//딕셔너리
var dic1 : Dictionary<String,Int> = Dictionary<String,Int>()
var dic2 : [String: Int] = ["송가현":31]
//값 추가
dic2["박선재"] = 32
dic2
//값 변경
dic2["송가현"] = 21
dic2
//삭제
dic2.removeValue(forKey: "박선재")
dic2
여기도 선언하는 방법
var 변수명 : Dictionary<key의 데이터타입:value의 데이터타입> = <key의 데이터타입:value의 데이터타입>
3. Set
//Set 선언
var set : Set = Set<Int>()
// Set 멤버 추가
set.insert(10)
set.insert(20)
set.insert(30)
set.insert(30)
set
//Set 멤버 삭제
set.remove(20)
set
Set이란 중복이 없는 Int형만 사용 가능하며, 축약형으로 선언할 수 없다. 순서대로 정렬도 되지 않고, 똑같은 값을 여러 번 넣어도 중복 없이 한 번만 저장된다.
함수
작업의 가장 작은 단위이자 코드의 집합
func 함수명 (파라미터이름:데이터타입) → 반환타입{
return 반환 값
}
func sum(a: Int, b: Int) -> Int{
return a+b
}
sum(a: 5, b: 6) //11
func hello() -> String{
return "hello"
}
hello() //"hello"
func printName() -> Void{
}
func greeting(friend: String, me: String = "Kim"){
print("Hello, \(friend)! I'm \(me)")
}
greeting(friend: "Gahyun") //"Hello, Gahyun! I'm kim\n"
전달인자 레이블
함수를 호출할 때, 전달인자 레이블을 사용하면 사용자 입장에서 매개변수 입장을 좀 더 명확하게 표현 가능
func 함수 이름(전달인자 레이블 : 매개변수 이름 : 매개변수 타입,
전달인자 레이블: 매개변수 이름 : 매개변수 타입...) -> 변환 타입 {
return 반환값
}
func sendMessage(from myName: String, to name : String)-> String{
return "hello \(name)! I'm \(myName)"
}
sendMessage(from: "Gahyun", to: "Sunjae")
// 전달인자 레이블을 사용하고 싶지 않다면, 언더바(_)를 넣어주면 된다.
func sendMessage(_ name : String) -> String{
return "Hello \(name)"
}
sendMessage("Gahyun")
//가변 매개변수 ( 매개변수의 값이 몇개 들어올지 모르겠을 때 사용함, 함수마다 하나씩만 사용 가능 )
func sendMessage(me: String, friends: String...)->String{
return "Hello \(friends)! I'm \(me)"
}
sendMessage(me: "Gahyun", friends: "Sunjae", "hyuna", "WooSeung")
조건문
주어진 조건에 따라서 애플리케이션을 다르게 동작하도록 하는 것
1. if
2. switch
3. guard
if
/*
if 조건식{
실행할 구문
}
*/
let age = 40
if age < 19 {
print("미성년자입니다.")
}
/*
if 조건식{
실행할 구문
}else{
만족하지 않으면 해당 구문 실행
}
*/
if age < 19 {
print("미성년자")
}else{
print("성인")
}
/*
if 조건식1{
조건식1을 만족할 때 실행할 구문
}else if 조건식2{
조건식2를 만족할 때 실행할 구문
} else {
아무 조건식도 만족하지 않을 때 실행할 구문
}
*/
let animal = "pig"
if animal == "dog"{
print("강아지 사료 주기")
}else if animal == "cat"{
print("고양이 사료 주기")
}else{
print("해당하는 동물 사료 없음")
}
switch
/*
switch 비교 대상{
case 패턴 1 :
패턴 1 일치할 때 실행되는 구문
case 패턴 2 :
패턴 2 일치할 때 실행되는 구문
default :
어느 비교 패턴과도 일치하지 않을 때 실행되는 구문
}
*/
let color = "green"
switch color {
case "blue":
print("파란색입니다.")
case "green":
print("초록색입니다.")
default :
print("찾는 색상이 없습니다.")
}
let temperature = 60
switch temperature{
case -20...9 :
print("겨울입니다.")
case 10...14 :
print("가을입니다.")
case 15...25 :
print("봄입니다.")
case 26...35 :
print("여름입니다.")
default :
print("섭씨로 입력하셨나요?")
}
반복문
반복적으로 코드가 실행되게 만드는 구문
1. for-in
2. while
3. repeat-while
/*
for 루프상수 in 순회대상 {
// 실행할 구문
}
*/
for i in 1...4{
print(i)
}
let array = [1,2,3,4,5]
for i in array{
print(i)
}
/*
while 조건식 {
// 실행할 구문
}
*/
var number = 5
while number < 10 {
number+=1
}
number
/*
repeat {
// 실행할 구문
} while 조건식
*/
var x = 6
repeat {
x+=2
} while x < 5
print(x)
'iOS 앱 개발 > Swift' 카테고리의 다른 글
iOS 개발 강의 정리_assert, guard (0) | 2022.04.18 |
---|---|
iOS 개발 강의 정리_상속, 오버라이딩, 타입캐스팅 (0) | 2022.04.04 |
iOS 개발 강의 정리_구조체와 클래스 (0) | 2022.03.09 |
iOS 개발 강의 정리_Swift 옵셔널(Optional) (0) | 2022.03.06 |
iOS 개발 강의 정리_Swift란? (0) | 2022.03.01 |