보통 기본 자료형(Primitive Data Type)이라 함은 값 방식에 Scalar성인데 그러니깐 Java로 예를 들면 int a = 0, C나 C++ 또한 int a = 0으로 사용을 합니다. 물론 Java에서 Class로 Integer 같은 것도 제공해주죠. 근데 Swift를 하면서 정말 궁금한게 Java나 C처럼 int, float, double형이 없고 struct형식으로 Int나 Double, CGFloat 같은 것을 제공해주는데 여기서 일단 제 머리로는 이해가 안되기 시작합니다.ㅎㅎㅎ 왜냐면 struct 형식임에도 불구하고 var a: Int = 0이나 var d: Double =0.0 또는 var c: CGFloat = 0이 어떻게 대입이 가능한지...제가 이때까지 사용했던 언어에서 습득한거와는 완전히 달라서 더더욱 이해가 안갑니다. 제가 생각하기에는 var a: Int로 선언했으면 a.구조체멤버 = 0 이렇게 와야 할 듯 싶거든요. 뭐 일단 사용하는데는 문제는 없지만 원리를 알고 사용하고 싶어서 이렇게 질문을 올립니다. 감사합니다.
a.구조체멤버 = 0 이건 a 객체의 프로퍼티 값을 변경시킨다는 의미라 구조체의 init과는 별개로 생각하시는 것 같습니다. 구조체임에도 어떻게 init 메소드를 따로 호출하지 않고 0, "string"만 딱 넣어서 객체를 생성헐 수 있냐고 물으신 거라면 Literal이라고 값을 직접 나타내는 표기법을 사용하여 init 메소드를 호출합니다.
swift 공부중인데 정리하는데 도움이 되네요 감사합니다.
이해가 바로 되게 설명 진짜 잘하신다..
보통 기본 자료형(Primitive Data Type)이라 함은 값 방식에 Scalar성인데
그러니깐 Java로 예를 들면 int a = 0, C나 C++ 또한 int a = 0으로 사용을 합니다.
물론 Java에서 Class로 Integer 같은 것도 제공해주죠.
근데 Swift를 하면서 정말 궁금한게 Java나 C처럼 int, float, double형이 없고
struct형식으로 Int나 Double, CGFloat 같은 것을 제공해주는데
여기서 일단 제 머리로는 이해가 안되기 시작합니다.ㅎㅎㅎ
왜냐면 struct 형식임에도 불구하고 var a: Int = 0이나 var d: Double =0.0 또는 var c: CGFloat = 0이
어떻게 대입이 가능한지...제가 이때까지 사용했던 언어에서 습득한거와는 완전히 달라서 더더욱 이해가 안갑니다.
제가 생각하기에는 var a: Int로 선언했으면 a.구조체멤버 = 0 이렇게 와야 할 듯 싶거든요.
뭐 일단 사용하는데는 문제는 없지만 원리를 알고 사용하고 싶어서 이렇게 질문을 올립니다.
감사합니다.
a.구조체멤버 = 0 이건 a 객체의 프로퍼티 값을 변경시킨다는 의미라 구조체의 init과는 별개로 생각하시는 것 같습니다. 구조체임에도 어떻게 init 메소드를 따로 호출하지 않고 0, "string"만 딱 넣어서 객체를 생성헐 수 있냐고 물으신 거라면 Literal이라고 값을 직접 나타내는 표기법을 사용하여 init 메소드를 호출합니다.
@@이윤서-i5w 값대입을 물어본겁니다.구조체인데 어떻게 멤버연산자가 없이 바로 대입이 되는지...그게 궁금했던 겁니다.^^
@@vhsshdlajs16 예 그니까 Literal 방식이요..
@@이윤서-i5w 기본자료형에 한해서 Swift에서 특수문법에 대한 예외를 제공하는 것 같다는 말씀으로 이해하면 되겠네요.
13:31