• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    해결됨

ref, out과 반환 타입, struct에 대해 질문 드리고싶습니다.

22.03.26 23:09 작성 조회수 399

1

여러번 반복하다보니 ref는 내부에서 초기화를 하지않아도 사용할 수 있고, out은 내부에서 초기화를 한 후 값을 내보내는 형태로 이해했습니다.

다만 반복을 하는 과정에서 

위와 같이 반환 타입을 ClassType의 enum 형식으로 했을때 return 값을 반환하고 ClassType의 Choice 변수에 저장하였습니다. 

다만, 몬스터를 스폰할 때는 void 타입으로 지정한 후 out을 통해 외부의 값을 바꾸어 준 것을 확인하였습니다.

그리고 첫 사진도 사실 void 값으로 바꾼 후 out을 이용해주면 똑같이 만들 수 있다는 사실을 확인했습니다.

질문을 드리고 싶은 부분!

 

1.거의 무조건적으로  void 타입의 함수를 사용하고 있는데 주석으로 순서를 정리하면서도 어디가 어디로 이어지는지  헷갈려서 이게 바람직한 방향인지 잘 모르겠습니다. 실제 업무에서는 반환타입을 지정해서 따로 변수를 주는지 궁금합니다.

 

2. enum 타입의 ClassType choice = ClassType.None; 의 개념이 enum내에 { choice = None과 같은값 } 이라는 변수(?)를 새로 추가해주는 것인지 궁금합니다.

 

3. 그렇다면 struct의 Monster monster / Player player는 뒤의 값이 정확히 무엇을 의미하는지 모르겠습니다. Monster라는 struct의 변수 monster값을 임의로 지정한 후 int hp, int attack 값을 변경한다는 의미로 이해하는게 맞을까요?

 

질문이 많아 죄송합니다!

답변 1

답변을 작성해보세요.

0

1.거의 무조건적으로  void 타입의 함수를 사용하고 있는데 주석으로 순서를 정리하면서도 어디가 어디로 이어지는지  헷갈려서 이게 바람직한 방향인지 잘 모르겠습니다. 실제 업무에서는 반환타입을 지정해서 따로 변수를 주는지 궁금합니다.
실제 업무에서도~ 시리즈는 잠시 잊으셔도 됩니다.
그냥 이것저것 본인이 생각하는대로 다 해보세요.
두 방법 다 안될건 없지만 반환하는 값이 1개라면,
굳이 out까지 가진 않는 경우가 더 많습니다.

2. enum 타입의 ClassType choice = ClassType.None; 의 개념이 enum내에 { choice = None과 같은값 } 이라는 변수(?)를 새로 추가해주는 것인지 궁금합니다.
맞습니다. 임시 변수를 추가해서 값을 설정하고 반환하는 것인데요.
함수가 끝나면 { } 안에서 선언한 지역변수인 ClassType choice는 날라가지만,
return choice에 의해 결과물은 복사되어 리턴됩니다.

3. 그렇다면 struct의 Monster monster / Player player는 뒤의 값이 정확히 무엇을 의미하는지 모르겠습니다. Monster라는 struct의 변수 monster값을 임의로 지정한 후 int hp, int attack 값을 변경한다는 의미로 이해하는게 맞을까요?
네 맞습니다. Monster는 타입, monster는 변수의 이름인 것이고
struct 특성상 hp+attack을 세트로 들고 있는데 그것을 하나하나 고치고 있는 것입니다.

성호님의 프로필

성호

질문자

2022.03.28

친절한 답변 감사합니다 :) 비전공자임에도 제공해주신 커리큘럼 덕분에 체계적으로 학습하고있는 느낌이 들어 정말 좋은거 같습니다 감사합니다!!