-두 수의 차 -두 수의 곱 -몫 구하기 -나이 출력 -숫자 비교하기 -두 수의 합 -두 수의 나눗셈 -각도기 Adjacent operators are in non-associative precedence group 에러 원인 : 비교연산자 두 개를 사용했기 때문에 우선순위로 오류 생김 해결 방법 : 연산자를 하나만 써도 됨 Missing return in global function expected to return 'Int' 에러 원인 : 함수가 리턴을 하지 않아서 해결 방법 : if, else if 조건에 맞지 않을 경우 리턴 값이 없기 때문에 else를 추가 => 쉽게 생각하자!
옵셔널 : 값이 있을 수도 없을 수도 있는 상태를 나타내는 타입
-자료형 뒤에 ?를 붙여서 나타냄//값이 비었다. 아직 값을 설정하지 않은 상태 var someVariable : Int? = nil //값이 비어있다면 변수에 값을 넣는다. if someVariable == nil { someVariable = 10 } print("someVariable : \(someVariable)") >>> someVariable : Optional(10)
위에서 var someVariable : Int? = nil와 var someVariable : Int?의 차이가 궁금했는데 결론은 같은 의미이다!
만약 상수 값이 비어있을 경우(nil), 기본값으로 넣고 싶은 값이 있으면 ?? 를 적음
someVariable = nil
let myValue = somevariable ?? 20
print("myValue : \(myValue)")
>>>>myValue : 20
Unwrapping 방법 1
//변수에 값이 비어있는지 확인한다. if let otherVariable = someVariable { print("언래핑 되었다=값이 있다. otherVariable : \(otherVariable)") } else { print("값이 없다.") } >>> 언래핑 되었다=값이 있다. otherVariable : 20
Unwrapping 방법 2
-guard 활용var firstValue : Int? = 30 var secondValue : Int? = 50 func unwrap(parameter : Int?) { print("unwrap() called") //값이 없으면 리턴 //즉 지나감 guard let unWrappedParam = parameter else { return } print("unWrappedParam : \(unWrappedParam)") } unwrap(parameter : firstValue) unwrap(parameter : secondValue) >>> unwrap() called unWrappedParam : 30 unWrappedParam : 50
위에서 unwrap(parameter : firstValue), unwrap(parameter : secondValue)을 unwrap(firstValue), unwrap(secondValue)로 간략하게 쓰고 싶다면
func unwrap(parameter : Int?)처럼 parameter앞에 를 붙이면 됨