[Swift] static을 조사해도 눈에 띄지 않기 때문에 스스로 정리한 [정적 변수/정적 방법]
static은 언제 썼어요?
우선 정적 변수를 쓰세요.
static var은 정적 변수라고 하며 모든 프로그램이 끝날 때까지 이 값을 유지하는 변수입니다
이 비유는 매우 우수하기 때문에 직접 인용한다.
예를 들어 라면집 티켓 발견 시스템.
모든 주문 수량을 하루의 마지막 합계로 그 손님의 주문 수량(몇 접시 등)을 계산한다.
static(정적)과 동적 변수의 행위에서 차이를 배워라.
class noodle {
//本日のオーダー数
static var order = 0
//お客が替え玉した時の皿の数
var sara = 0
//売上をカウントしていく
func uriage() {
noodle.order += 1
print("本日\(noodle.order)杯目の注文が入りました。")
}
//お客ごとの替え玉数をカウント
func kaedama() {
sara += 1
print("替え玉を\(sara)回したので皿は\(sara)枚です。")
}
}
그리고 이렇게 부르면 어떨까.var okyakusan_1 = noodle()
okyakusan_1.uriage()
// ▶ 本日1杯目の注文が入りました。
okyakusan_1.kaedama()
// ▶︎ 替え玉を1回したので皿は1枚です。
두 번째는 다음과 같다.var okyakusan_2 = noodle()
okyakusan_2.uriage()
// ▶ 本日1杯目の注文が入りました。
okyakusan_2.kaedama()
// ▶︎ 替え玉を2回したので皿は2枚です。
즉, 초기화 클래스(noodle 클래스)를 통해 실례를 생성하더라도인스턴스를 다시 생성할 수 없는 변수라고 할 수 있습니다.
더 자세히 말하면 다음과 같은 참고할 만한 성질이 있다.
print(noodle.sara) // インスタンスがないので不可
print(noodle().sara) // インスタンス生成すればOK // 結果:0
静的変数はインスタンスを生成する必要がなく、参照できる。
print(noodle.order) // 結果:0
참조:정적 변수
정적 방법에 관하여
static도 방법에 추가할 수 있습니다.
class noodle {
func getResponce(isSuccess: Bool) -> String{
if (isSuccess) {
return "Success"
} else {
return "Failed"
}
}
static func getResponceStaticMethod(isSuccess: Bool) -> String{
if (isSuccess) {
return "Success"
} else {
return "Failed"
}
}
}
static을 사용하는 방법은 있지만 다음과 같은 행위가 다르다.noodle().getResponce(isSuccess: true)
noodle.getResponceStaticMethod(isSuccess: true)
noodle 클래스의 실례를 생성하지 않아도 값을 호출하고 되돌릴 수 있습니다.
Reference
이 문제에 관하여([Swift] static을 조사해도 눈에 띄지 않기 때문에 스스로 정리한 [정적 변수/정적 방법]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/tanukidevelop/articles/7ac12aba4114ac텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)