본문 바로가기

iOS/Swift

Swift Day_11

제네릭 : 타입에 의존하지 않는 범용 코드

 

import SwiftUI

 

struct Mygeneric: View {

    

    @State var input = ""

    @State var myStack = MyStack<Int>() //Int, Float, String 등을 입력 하여도 문제 없다.

    

    var body: some View {

        VStack{

            TextField("숫자를 입력해주세요" , text: $input)

            

            Button{

                myStack.insertValue(input: Int(input) ?? 0 )

                input = ""

            } label: {

                Text("Save")

            }

            

            

            Button{

                myStack.showData()

            } label: {

                Text("Print")

            }

            

        }

    }

}// Mygeneric

 

// MyStack 타입을 <T> 로 지정 하여 임의로 받을 수 있다.

struct MyStack<T> {

    var data: [T] = []

    

    mutating func insertValue(input: T){

        data.append(input)

    }

    

    func showData(){

        data.forEach { item in

            print(item)

        }

    }

}

 

#Preview {

    Mygeneric()

}

'iOS > Swift' 카테고리의 다른 글

Swift Stat 와 Binding  (0) 2024.07.08
Swift Hashable Protocol  (0) 2024.07.08
Switft Day_10  (0) 2024.07.06
Swift Day_09  (0) 2024.07.06
Swift Day_08  (0) 2024.07.05