0Pricing
Swift Academy · Pelajaran

Tipe Opaque dengan Kata Kunci some

Mengembalikan tipe opaque dari fungsi untuk mempertahankan identitas tipe tanpa mengeksposnya.

Tipe Opaque dengan Kata Kunci some adalah pelajaran Swift Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Swift Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Swift Academy mencakup 4 pelajaran total.

Masalah yang Diatasi Tipe Samar

Mengembalikan tipe protokol dengan any menghilangkan informasi tipe. some mempertahankannya sambil menyembunyikan implementasi.

protocol Shape { var area: Double { get } }
struct Circle: Shape { var area: Double { .pi * 4 } }

Mengembalikan some Protocol

some Shape sebagai tipe kembalian memberi tahu pemanggil, "Saya mengembalikan tipe Shape tertentu," tanpa mengungkapkan tipe yang mana.

func makeShape() -> some Shape {
  return Circle()
}
let s = makeShape()
print(s.area)

Identitas Tipe Dipertahankan

Karena tipe some memiliki tipe dasar yang tetap, kompiler mengizinkan operasi yang memerlukan Self.

func makeEquatableShape() -> some Shape & Equatable {
  return Circle()
}
let a = makeEquatableShape()
let b = makeEquatableShape()
print(a == b) // works because types match

some vs any

some bersifat samar (satu tipe tetap), sedangkan any bersifat eksistensial (tipe apa pun yang memenuhi protokol saat program berjalan).

func withSome() -> some Shape { Circle() }  // opaque
func withAny() -> any Shape { Circle() }   // existential

some dalam Body SwiftUI

SwiftUI menggunakan some View agar body setiap tampilan mengembalikan satu tipe yang konsisten tanpa mengungkapkan detail tata letaknya.

struct ContentView: View {
  var body: some View {
    Text("Hello, World!")
  }
}

Parameter Samar dengan some

Swift 5.7+ memungkinkan some Protocol pada posisi parameter sebagai sintaks singkat untuk batasan generik.

func printArea(_ shape: some Shape) {
  print(shape.area)
}
printArea(Circle())

Generik Terbalik

Parameter samar some P setara dengan (_ value: T). Kompiler menyimpulkan T di lokasi pemanggilan.

func doubled(_ value: some Numeric) -> some Numeric {
  value * 2
}

Batasan pada some

Anda dapat menggabungkan protokol dengan tipe samar seperti halnya generik.

func process(_ item: some Codable & Hashable) {
  let hash = item.hashValue
  print(hash)
}

Mengembalikan Tipe yang Berbeda

Berbeda dari tipe eksistensial, Anda tidak dapat mengembalikan tipe berbeda yang memenuhi protokol dari cabang berbeda dengan tipe samar.

// This would NOT compile:
// func shape(_ big: Bool) -> some Shape {
//   big ? Circle() : Square()  // ERROR: different types
// }

Tipe Samar dalam Protokol

Protokol dengan tipe terkait menjadi lebih mudah digunakan sebagai tipe kembalian dengan some.

protocol Buildable { associatedtype Output; func build() -> Output }
func build(_ b: some Buildable) -> some Any {
  b.build()
}

Kapan Memilih some

Utamakan some saat Anda mengembalikan satu tipe yang konsisten dan ingin mempertahankan identitasnya. Gunakan any saat Anda memerlukan koleksi heterogen.

var shapes: [any Shape] = [Circle(), Circle()]
let single: some Shape = Circle()

Pemeriksaan Singkat

Apa yang dijamin oleh kata kunci some tentang tipe kembalian?

Ringkasan Pelajaran

some membuat tipe kembalian samar yang menyembunyikan tipe konkret sekaligus mempertahankan identitas tipe. some View milik SwiftUI adalah contoh utama. Gunakan some untuk kembalian bertipe tunggal dan any untuk koleksi heterogen.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Tipe Opaque dengan Kata Kunci some” gratis?

Ya — teks lengkap “Tipe Opaque dengan Kata Kunci some” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Swift Academy, upgrade ke CoddyKit PRO. Kursus Swift Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Tipe Opaque dengan Kata Kunci some”?

Mengembalikan tipe opaque dari fungsi untuk mempertahankan identitas tipe tanpa mengeksposnya. Kamu berlatih Swift Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Swift Academy?

Tidak diperlukan pengalaman sebelumnya. Swift Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Tipe Opaque dengan Kata Kunci some” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Swift Academy ini?

Ya. Setiap pelajaran Swift Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Batasan Generik dan Klausa where
  2. Tipe Opaque dengan Kata Kunci some
  3. Existential dengan any dan Penghapusan Tipe
  4. Tipe Associated Utama dan Typed Throws
← Kembali ke Swift Academy