본문 바로가기
모바일앱/Swift

Scope

by GeekCode 2021. 9. 28.
반응형

보통 변수는 메소드 안에서만 사용되는데

이렇게 변수가 사용되는 범위 자체를 scope라고 한다.

 

alert과 action은 showAlert안에서만 사용할 수 있는 변수이기때문에

"스콥이 showAlert안으로 한정돼 있다고  표현한다."

 

 

{...scope...}

기본적으로 코드 블럭 안에 있는것을 하나의 스콥 이라고 표현한다.

블럭안에 있는 것이 하나의 스콥, 스콥안에서 설정된 변수는 스콥이 그 안에 있다고 표현한다.

 

 

내가 만든 예제

// 예제 구두를 닦아서 용돈을 받는 아이
// 평소 용돈은 30000원 이지만 구두를 닦으면 구두당 5000원을 더 준다. 6켤레부터는 2배의 용돈
// 10개를 닦았다면 이번달 용돈은?

var howManyShoes = 10
let payPerShoes = 5000 // 구두 한켤레당 용돈

var allowance = 30000 //정기적인 용돈

if howManyShoes > 5 {
    let extraShoes = howManyShoes - 5
    allowance += extraShoes * payPerShoes * 2 //초과분의 값 먼저 추가
    howManyShoes -= extraShoes
}

allowance += howManyShoes * payPerShoes

print( "이번달 용돈은 \(allowance)원 입니다.")

// 이번달 용돈은 105000원 입니다.
// 와 .. 부럽다

// if문 하나의 코드블럭이 스콥이다. 스콥 안에 있는 상수나 변수를 가지고 나와도 밖에서 쓸수 없다. 

//print(extraShoes)
//에러

// howManyShoes에서부터 맨 아래까지 보이지는 않지만 하나의 스콥으로 볼 수 있다.





func money() {
var howManyShoes = 10
let payPerShoes = 5000 // 구두 한켤레당 용돈

var allowance = 30000 //정기적인 용돈

if howManyShoes > 5 {
    let extraShoes = howManyShoes - 5
    allowance += extraShoes * payPerShoes * 2 //초과분의 값 먼저 추가
    howManyShoes -= extraShoes
}

allowance += howManyShoes * payPerShoes

print( "이번달 용돈은 \(allowance)원 입니다.")

} //money

money()

 

 

반응형

'모바일앱 > Swift' 카테고리의 다른 글

플로우컨트롤. (조건문) Switch  (0) 2021.09.29
플로우컨트롤. (반복문) for Loop & Where  (0) 2021.09.29
플로우컨트롤. (반복문) while, repeat  (0) 2021.09.29
Flow control  (0) 2021.09.29
튜플(Tuple)  (0) 2021.09.28
코멘트  (0) 2021.09.28
컬렉션 타입(Array, Dictionary, Set)  (0) 2021.09.27
Any, AnyObject, nil  (0) 2021.09.27