본문으로 건너뛰기

SwiftUI - Generic

· 약 1분
Jeonghun Kim
Frontend Developer

제네릭(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();
}
}