SwiftUI - Generic

제네릭(Generic)은 데이터 형식이나 함수를 일반화하고, 재사용 가능한 코드를 작성하는 데 도움을 주는 기능.

제네릭은 특정한 데이터 형식에 의존하지 않고, 여러 다양한 데이터 형식에 대해 동일한 코드를 작성할 수 있음.

비교 : SwiftUI , TS , JAVA

SwiftUI

import SwiftUI

struct MyArray<T> {
    var data: [T] = []
    
    mutating func append(_ item: T) {
        data.append(item)
    }
    
    func printAll() {
        data.forEach { item in
            print(item)
        }
    }
}

struct ExamGeneric_Previews: PreviewProvider {
    static var previews: some View {
        
        var myInt = MyArray<Int>()
        var myStr = MyArray<String>()
        
        myInt.append(1)
        myInt.append(2)
        myInt.printAll()
        
        myStr.append("A")
        myStr.append("B")
        myStr.printAll()
        
        return Text("Hello, world!")
    }
}

TS

class MyArray<T> {
  private data: T[] = [];

  append(item: T): void {
    this.data.push(item);
  }

  printAll(): void {
    this.data.forEach((item) => {
      console.log(item);
    });
  }
}

const myInt = new MyArray<number>();
const myStr = new MyArray<string>();

myInt.append(1);
myInt.append(2);
myInt.printAll();

myStr.append("A");
myStr.append("B");
myStr.printAll();

Java

import java.util.ArrayList;
import java.util.List;

class MyArray<T> {
    private List<T> data = new ArrayList<>();

    public void append(T item) {
        data.add(item);
    }

    public void printAll() {
        for (T item : data) {
            System.out.println(item);
        }
    }
}

public class Main {
    public static void main(String[] args) {
        MyArray<Integer> myInt = new MyArray<>();
        MyArray<String> myStr = new MyArray<>();

        myInt.append(1);
        myInt.append(2);
        myInt.printAll();

        myStr.append("A");
        myStr.append("B");
        myStr.printAll();
    }
}

© 2021. All rights reserved.