Some Keyword ใน SwiftUI นั้น เป็น keyword ที่เริ่มมีในภาษา swift version 5.1 เป็นต้นมา ซึ่งหากดูในเอกสารของ swift.org แล้ว จะอยู่ในส่วนของหัวข้อ Opaque Type
การระบุ keyword some ที่ด้านหน้าของ return type ไหนก็ตาม return type นั้นจะกลายเป็น Opaque Type
“Some” Keyword
เมื่อสร้าง โปรเจ็คใหม่โดยใช้ swiftUI หรือการ แตก subview (extract subView) เราจะเห็น Keyword some ถูกนำมาใช้ที่ตัวแปร body
Keyword some ถูกนำมาใช้ในส่วนของการประกาศตัวแปร body ดังนี้
ตัวอย่างเช่น var body: some View
import SwiftUI
struct ContentView: View {
var body: some View {
Text("Hello, world!")
.padding()
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
Some Keyword ใน SwiftUI คืออะไร
some จะถูกระบุหน้า return type โดยถ้าระบุ some ไว้ ก็หมายความว่า ชนิดข้อมูลที่ return กลับนั้น จะเป็นชนิดข้อมูลอะไรก็ได้ ที่สอดคล้อง(conform to) กับ protocol หลัง keyword some
ตัวอย่างเช่น
var body: some View {
Text("Hello, world!")
}
หมายความว่า ชนิดข้อมูล(Type) ที่ส่งกลับมายังตัวแปล Body นั้น จะเป็นชนิดข้อมูลอะไรก็ได้ โดยที่ต้องสอดคล้องกับ protocol View
ดังนั้นเราจึงสามารถเอา Text(“Hello, world!”) ใส่เข้าไปได้ เพราะ Text นั้น conform กับ View นั่นเอง
เราสามารถดูว่า Type conform กันหรือเปล่าจากเอกสาร developer document ในเว็บไซต์ apple
Type ไหนบ้างที่ conform กับ View
- เราสามารถดูได้ที่ Link ของ Apple developer
- https://developer.apple.com/documentation/swiftui/text
อ้างอิง
https://stackoverflow.com/questions/56433665/what-is-the-some-keyword-in-swiftui
https://www.vadimbulavin.com/opaque-return-types-and-the-some-keyword-in-swift/
Link อื่นๆ
ขอบคุณภาพโดย Eerina Hart จาก Pixabay