2012-09-20 4 views
2

이 주제는 과거에 다루어졌지만 (로컬 변수 대 인스턴스 변수), 약간의 도움이 필요했습니다. 이 주제에 대한 모든 종류의 문서를 읽었으며 지역 변수가 블록 내에 존재하고 인스턴스 변수가 호출되어 다른 방법으로 사용된다는 것을 느슨하게 이해하는 동안 커뮤니티에서보다 명확한 정보를 얻기를 희망했습니다.레일스의 로컬 변수 vs. 인스턴스 변수?

예제의 맥락에서 로컬 변수와 인스턴스 변수가 무엇인지 설명 할 수 있습니까? 아마도 사용자 이야기일까요? 어떤 코드도 보지 않고, 스토리를보고, 그 이야기를 코드로 작성하는 것을 선호합니다. 예; "여기에 지역 변수에 대한 이야기가 있습니다. Jane은 상점으로갑니다 ..."또는 "인스턴스 변수에 대한 이야기가 있습니다. Bill이 가게로갑니다 ..."등

다른 사람들은 이것으로 어려움을 겪고 있습니다. 그래서 저는 두 가지 양질의 이야기가 나와 같은 noooobs를 많이 돕는 데 오랫동안 노력해야한다고 생각합니다.

감사합니다 !!!

답변

1

유제품은 우유 팩을 인쇄하기 위해 템플릿 (모델/클래스)을 사용합니다. 제인은 가게에 가서 우유를 사러갑니다. 그녀는 이제 우유 (컨테이너)가 있습니다.

우유 용기에는 "오늘 사용하십시오"라는 스티커가 붙어 있습니다.

용기를 만드는 데 사용 된 모델에는 스티커가 표시되지 않습니다.
모델의 각 인스턴스에 스티커가 표시되지 않습니다.
귀하의 스토어에만 해당 스티커가 만료되는 특정 상자에 대해 오후 5시에 스티커를 볼 수 있습니다.

이것은 지역 변수가 의미하는 것과 정확히 같지 않지만 실세계의 "일종의"비유입니다.

2

놀이 공원에 가본 적이 있습니까?

당신이 탈 수있는 것을 모두 구입하면 롤러 코스터, 관람차 및 먼지 자전거 코스와 같은 모든 놀이기구를 이용할 수 있습니다.

모든 인스턴스 변수는 @pass입니다. 왜냐하면 루비에서는 인스턴스 변수가 @ 기호로 시작하기 때문입니다.

로컬 변수는 타기 영역의 한 섹션에만 액세스하는 것과 같습니다. 관람차는 관람차에 적합합니다. 일단 관람차 구역 밖에 있으면 아무도 더 이상 관람을 신경 쓰지 않고 묻습니다.

루비 용어에서는 변수가 범위에 할당되어 사용되며, 다른 범위 나 메서드로 이동해야하는 경우 해당 인스턴스 변수를 사용하여 재미있는 작업을 계속 수행 할 수 있습니다.