using System.Collections;
using System.Collections.Generic;
using UnityEngine;
// <구조체>
// class와 구조체인 struct는 기능이 똑같다. 과거 class가 없을 당시에 struct를 사용했고 언어가 발전함에 따라 class를 사용하기 시작함
// 그럼 왜 struct가 존재하는가? 호환성 때문에 존재.
// struct는 class의 구버전인 만큼, class와 같은 기능을 한다고는 해도 신버전인 class보다 기능이 적다.
// 대표적으로 한 가지를 들자면, struct는 class와 같이 상속이 불가능하다. struct는 monobehavior를 못쓴다.
// struct는 값 타입이고(Value Type), class 주소 타입이다(Reference Type).
// 예를 들어 int a = 10; 이라는 변수에 접근하면, 값 타입은 다이렉트로 10 이라는 값에 접근하고, 주소 타입은 10에 대한 주소를 찾아 10에 접근하는 것. struct가 더 직관적이고 접근이 빠르다고 할 수 있다.
public class Youtube
{
public int a /* = 1 */ ; // 구조체에는 변수에 값을 대입할 수 없다. 단순히 그릇 역할만 할 수 있다.
// 값을 대입하려면, 'public class Youtube'와 같이 public을 대입하거나, 'GetA'와 같이 파라미터를 받아서 대입시켜야 한다.
public void GetA(int value)
{
a = value;
}
}
public class Test : MonoBehaviour
{
Youtube LSB = new Youtube(); // Youtube 구조체를 'LSB' 라고 정의. 그러면 LSB는 Youtube가 되는 것.
// struct를 사용하면 'Youtube LSB;' 만 해도 가능하지만, class로 바뀌면 'Youtube LSB = new Youtube();'로 따로 공간을 만들어 줘야됨
void Start()
{
LSB.a = 5; // 값을 넣는 방법 1
LSB.GetA(5); // 깂을 넣는 방법 2
print(LSB.a);
}
}
카테고리 없음
댓글