-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Struct 가 무엇이고 어떻게 사용하는지 설명하시오. #7
Comments
Struct 는 Class 와 공통점이 많다
Class는 구조체에 없는 추가적인 기능이 있다.
이처럼, Class가 지원하는 기능이 Struct에 비해 많기 때문에, 복잡성이 증가한다.
Struct 정의 구문struct SomeStructure {
// structure definition goes here
}
struct Study {
var language = "Python"
var month = 12
}
let originalLang = Study() 프로퍼티 접근
print("I studied \(originalLang.language) for \(originalLang.month) months")
// I studied Python for 12 months 멤버별 초기화 구문
let anotherLang = Study(language: "Swift", month: 2)
print("I studied \(anotherLang.language) for \(anotherLang.month) months")
// I studied Swift for 2 months 📝 참고 |
Struct란
Struct 정의struct Person {
var name: String
var age: Int
func greet() {
print("Hello, I'm \(name) and I'm \(age) years old.")
}
struct 메서드 내에서 프로퍼티를 변경하고자 할때에는
|
Struct 가 무엇이고 어떻게 사용하는지 설명하시오
Struct 를 사용해야하는 이유
// 권장되지 않는 방식
struct Complex {
private var real: Double
private var imaginary: Double
init(real: Double, imaginary: Double) {
self.real = real
self.imaginary = imaginary
}
// 자기 자신의 프로퍼티를 변경하려 할 경우 mutating 키워드를 추가해야 합니다.
mutating func add(_ complex: Complex) {
real += complex.real
imaginary += complex.imaginary
}
} struct Complex {
private let real: Double
private let imaginary: Double
init(real: Double, imaginary: Double) {
self.real = real
self.imaginary = imaginary
}
func plus(_ complex: Complex) -> Complex {
return Complex(real: real + complex.real, imaginary: imaginary + complex.imaginary)
}
} 📝 참고 사이트 |
Struct
Struct 사용 이유
이럴 때 Struct 를 쓰세요!다른언어와 다르게 스위프트의 구조체는 클래스에서 사용할 수 있는 다양한 요소들을 사용할 수 있고 , Class보다 복잡성이 적기 때문에 디폴트로 구조체를 사용하기를 공식문서에서도 권장하고 있음
📝 참조 |
No description provided.
The text was updated successfully, but these errors were encountered: