23.01.03 학습일기

15. Optional_3

// if let(var)

// guard let(var)

var myAge1: Int? = 20

var myAge2: Optional<Int> = 40

myAge1이 nil이 아닐 경우, 그냥 Int 값으로 처리 가능

따라서, myAge1은 unwrapping 가능

var sum = 0

if let age = myAge1 {

sum+age+1 // 21

}

그러나, myAge1이 nil일 경우, myAge1은 unwrapping 할 수 없기 때문에 연산 불가

var sum = 0

myAge1 = nil // nil

if let age = myAge1 {

sum+age+1 // 21

} // 0

if let(var)과 형식은 똑같은데 동작되는 방식이 다른 것 = guard let(var)

guard let age = myAge1 else { // 값을 가져오지 못했을 때

// guard 문은 중단시키고자 할 때 사용

return // 해당되는 코드블럭 끝남을 의미

//fatalError("여기는 nil이 나오면 안 되는 부분입니다.") // 앱 자체를 종료시키면서 에러 표시를 나타내는 기능, 왜 에러 발생했는지 써주기

}

age // age 가져왔을 때 처리는 밑에 씀


16. Operators_1

var (age1, age2) = (10, 20)

let newStr = str1 + " " + str2

var arr1 = ["a", "b", "c"]

var arr2 = ["d", "e", "f"]

var newArr = arr1 + arr2 // 배열도 합치기 가능, ["a", "b", "c", "d", "e", "f"]

// String이나 Array 같은 경우 타입 같으면 +연산 했을 때 이어붙여서 출력됨

//Remainder Operator 나머지 값 알려주는 연산자 % -> Int 타입만 가능!!!

var num1 = 8

var num2 = 3

num1 % num2 // 2

// Double 타입

var num3: Double = 8

var num4: Double = 3

num3.truncatingRemainder(dividingBy: num4) //2

!! num3.remainder(dividingBy: num4) // -1이 나옴 => why?

==> num3 / num4를 하면 2.66666이 나오는데, 몫은 가까운 정수로 표현되여 3이 된다.

이 때, 3X3(num4)=9가 되어 8(num3)보다 1이 커지므로, -1이 출력된다.


17. Operators_2

var a = "a"

var b = "b" // 문자 - 대소 비교 가능

if a>b {

print("true")

}

else {

print

}

// Range Operator

// 범위 0...5

for index in 0..<5 {

print(index)

}

let names = ['"kim", "lee", "min"]

for index in 0..<names.count) {

print(names[index]

}

for name in names {

print(name) // 범위 지정 하지 않아도 처음부터 끝까지 도는 것

}

for name in names[1...] // 1부터 끝까지 쓴다는 의미

for name in names[...3] // 처음부터 3까지 쓴다는 의미

&& AND

|| OR

.toggle()은 해당 성질을 반대로 바꿔버림 - 원본 자체가 바뀜

isGreen.toggle() - false

isGreen - false


18. Unicode

// 문자 -> 내부적으로 특정한 코드 값(16진수)

\u안에 코드 값 넣으면 유니코드 나옴

"a"

"\u{61}" // "a"

"가를" 유니코드로 변경하고 싶다면?

UnicodeScalar("가") // 44032-But 이것은 10진수

유니코드는 16진수이기 때문에, 44032를 16진수로 바꾸기 위해서는?

String(44032, radix: 16) // AC00

// 숫자만 입력

let inputValue = "ㄱ"

if inputValue >= "\u{30}" && inputValue <= "\u{39}" // 0 에서 9 {

print("숫자")

} else{

print("숫자 아님")

}

// 한글만 입력

UnicodeScalar("가") // 44032

String(44032, radix: 16) // ac00

UnicodeScalar("힣") // 55203

String(55203, radix: 16) // d7a3

if inputValue >= "\u{ac00}" && inputValue <= "\u{d7a3}" // 0 에서 9 {

print("한글")

} else{

print("한글 아님")

}

댓글을 작성해보세요.

채널톡 아이콘