Jihyeonnn
송지현
Jihyeonnn
전체 방문자
오늘
어제
  • Jihyeon Song (29)
    • C++ (0)
    • C (0)
    • Linux (0)
    • iOS (23)
    • JAVA (0)
    • Python (1)
    • GitHub (0)
    • 개인 프로젝트 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • array
  • Mac
  • 스위프트
  • swift
  • 개발자
  • 개발
  • iOS 개발
  • IT
  • 코딩
  • 기초
  • 파이썬 #python #개발 #기초
  • UI
  • ios
  • iOS개발
  • generic
  • optionalchaining
  • Mac사용법
  • 프로그래밍

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Jihyeonnn

송지현

Swift 문법 정리
iOS

Swift 문법 정리

2025. 3. 18. 16:47

- Swfit는 등호 양쪽에 공백이 일관되게 있어야 한다.

var x =10
var x= 10

 

 

- Swift에서 자료형의 종류와 크기 알아보기

var x = 10
print(type(of:x)) //Int
let s = MemoryLayout.size(ofValue: x)//8
let t = MemoryLayout<Int>.size //8
print(s, t)

 

 

- 다양한 print 방법 알아보기

var x = 10
print(x) //10
print("x") //x
print("\(x)") //10
print("값은 \(x)입니다.") //값은 10입니다.

 

- Tuple

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)) //(count: Int, length: Double, message: String)
print(myTuple.message, myTuple.2) //Hi Hi
var x : Int? //옵셔널 정수형 변수 x 선언
var y : Int = 0
x = 10 // 주석처리하면?
print(x) // Optional(10)
print(x!) // forced unwrapping해서 10
print(y) //0
//x = x+2 // error
//y = x // error
x = x! + 2
print(x) // Optional(12)
y = x! 
print(y) // 12

 

- Optional

var x : Int?
//x = 10
print(!x)

//이런 식으로 초기값을 설정해 주지 않으면 에러가 발생한다.
var x : Int?
x = 10
if x != nil { // 주의: x!=nil 과 같이 작성하면 ! 연산자의 우선순위가 더 높기 때문에 x! = nil이 된다.
	print(x!)
}
else {
	print("nil")
}
//이런 식으로 초기값을 설정해 주거나, else문으로 처리해 주면 된다.
var x : String? = "Hi"

x! //1

if let a = x { //2
    print(a)
}

let c = x ?? "" //3

let b = x?.count

// 여러 언래핑 방식이다.

- if let

var x : Int?
x = 10
if let xx = x { //옵셔널 변수 x가 값(10)이 있으므로 언래핑해서 일반 상수 xx에 대입하고 if문 실행
    print(x,xx) //Optional(10) 10
}
else {
    print("nil")
}
var x : Int?
x = 10
if let x = x { //옵셔널 변수 x가 값(10)이 있으므로 언래핑해서 일반 상수 xx에 대입하고 if문 실행
    print(x, x) // 10 10
}
else {
    print("nil")
}
var x : Int?
x = 10
print(x) // Optional(10)

if let x { //옵셔널 변수 x가 값(10)이 있으므로 언래핑해서 일반 상수 xx에 대입하고 if문 실행
    print(x) // 10
}
else {
    print("nil")
}
var pet1: String?
var pet2: String?

pet1 = "cat"
pet2 = "dog"

if let pet1, let pet2 {
    print(pet1, pet2) // cat dog
} else {
    print("nil")
}
var age : Int?
age = 20
print(age) // Optional(20)
var myAge = age ?? 1
print(myAge) // 20

 

- nil 합병 연산자 (Nil-Coalescing Operator)

let defaultColor = "black"
var userDefinedColor: String? // defaults to nil
var myColor = userDefinedColor ?? defaultColor
//nil이므로 defaultColor인 black으로 할당됨

print(myColor) //black
userDefinedColor = "red"
myColor = userDefinedColor ?? defaultColor
//nil이 아니므로 원래 값인 red가 할당됨

print(myColor) //red, 주의 optional(red)가 아님

 

- Int? vs Int!

let x : Int? = 1
let y : Int = x!
let z = x

print(x,y,z) //Optional(1) 1 Optional(1)
print(type(of:x),type(of:y),type(of:z))
//Optional<Int> Int Optional<Int>

let a : Int! = 1 //Implicitly Unwrapped Optional
let b : Int = a //Optional로 사용되지 않으면 자동으로 unwrap함
let c : Int = a!
let d = a //Optional로 사용될 수 있으므로 Optional형임
let e = a + 1

print(a,b,c,d,e) //Optional(1) 1 1 Optional(1) 2
print(type(of:a),type(of:b),type(of:c),type(of:d), type(of:e))
//Optional<Int> Int Int Optional<Int> Int

 

- Int! 형을 property로

class MyAge {
var age : Int!
init(age: Int) {
	self.age = age
}
    func printAge() {
            print(age) //optional(1)
            print(age+1) //2, age! + 1 라고 쓰지 않아도 됨
            let age1 : Int = age
            print(age1) //1
            let age2 = age + 2
            print(age2) //3
	}
}
var han = MyAge(age:1)
han.printAge()

 

- is

let x = 1
if x is Int {
    print("Int형")
}

 

- for

for i in 1...5 {
	print("\(i) 안녕")
}
for _ in 1...5 { // 이와 같이 _으로 생략 가능하다
	print("안녕")
}
let names = ["A", "B", "C", "D"]
	for name in names {
	print(name)
}
//A
//B
//C
//D
let numberOfLegs = ["Spider": 8, "Ant": 6, "Dog": 4]
//dictionary는 key:value형식의 배열
for (animalName, legCount) in numberOfLegs {
	print("\(animalName)s have \(legCount) legs")
}

 

- while

var myCount = 0
while myCount < 1000 {
	myCount+=1
}
print(myCount) //1000

 

- continue

for i in 1...10 {
    if i % 2 == 0 {
    	continue // 반복문 이후 모든 코드 건너뛰고 반복문 상단으로 감
    }
	print(i) // 홀수만 출력
}

 

- if

var x = 10
if x > 5 {
	print("5보다 큽니다") // 참이므로 문자열 출력
}

 

var num = 3 
if num == 1 || num == 3 {
	print("당신은 남성이군요!\n") //출력
}else if num == 2 || num == 4 {
	print("당신은 여성이군요!\n")
}else {
	print("당신은 대한민국 사람이 아니군요!\n")
}

//다중 if문

 

- guard

guard let number = value else {//조건식이 거짓(nil)일 때 else 블록 실행
	print("nil")
	return
}

 

- switch ~ case

var value = 0
switch (value) // case문의 마지막에는 각각 break문이 포함되어 있다.
{
case 0:
	print("영") //만약 실행문이 없다면 error
case 1:
	print("일")
case 2:
	print("이")
case 3:
	print("삼")
default:
	print("4이상")
}
case 1,3,5,7,8,10,12:
	print("31 일입니다")
case 4,6,9,11:
	print("30 일입니다")
    
// 이런 식으로 결합도 가능하다.
case 0...9:
	count = "한자리 수"
case 10...99:
	count = "두자리 수"

// 범위 지정도 가능
case 0...49 where temperature % 2 == 0: // 조건 추가 시 where절 사용
	print("Cold and even")
case 50...79 where temperature % 2 == 0:
	print("Warm and even")
case 4:
    print("4")
	fallthrough
case 3:
    print("3")
    fallthrough
    
// case문을 빠져나가지 않고 계속 내려가게 하려면 fallthrough 사용

 

- 함수

func sayHello() { //리턴값 없으면 굳이 자료형을 지정하지 않아도 된다. 자료형은 ()
	print("Hello")
}

sayHello() //호출
func add(x: Int, y: Int) -> Int { // 자료형은 (Int, Int) -> Int
	return(x+y)
}

add(x:10, y:20)

'iOS' 카테고리의 다른 글

Swift로 전광판 만들기  (0) 2025.03.19
Swift로 무드등 만들기  (0) 2025.03.19
Swift 재활하기  (0) 2025.03.05
Swift - 클로저(Closure)  (0) 2024.12.11
Swift 12 - Auto layout, LaunchScreen  (0) 2024.12.04
    'iOS' 카테고리의 다른 글
    • Swift로 전광판 만들기
    • Swift로 무드등 만들기
    • Swift 재활하기
    • Swift - 클로저(Closure)
    Jihyeonnn
    Jihyeonnn

    티스토리툴바