โครงสร้างสวิฟท์
โครงสร้างสวิฟท์เป็นรหัสที่ใช้ในการสร้างโครงสร้างที่พบบ่อยและมีความยืดหยุ่น
เราสามารถกำหนดคุณสมบัติของโครงสร้าง (ค่าคงที่ตัวแปร) และเพิ่มวิธีการที่จะขยายโครงสร้างการทำงาน
C และวัตถุประสงค์ C จะแตกต่างกัน
โครงสร้างไม่จำเป็นต้องรวมไฟล์การดำเนินการและการเชื่อมต่อ
โครงสร้างช่วยให้เราสามารถสร้างไฟล์เดียวและระบบอัตโนมัติจะสร้างรหัสสำหรับการเชื่อมต่อภายนอกอื่น ๆ
โครงสร้างมักจะถูกจำลองแบบโดยวิธีการของการถ่ายโอนในรหัสดังนั้นค่าของมันไม่สามารถแก้ไขได้
ไวยากรณ์
เรากำหนดโครงสร้างผ่าน struct คำหลัก:
struct nameStruct { Definition 1 Definition 2 …… Definition N }
ตัวอย่าง
เรากำหนดโครงสร้างที่เรียกว่า MarkStruct โครงสร้างคุณสมบัติสำหรับนักเรียนที่จะทำคะแนนสามวิชาชนิดข้อมูล Int:
struct MarkStruct{ var mark1: Int var mark2: Int var mark3: Int }
เราสามารถมากับโครงสร้างโดยใช้ชื่อโครงสร้าง
ตัวอย่างของโครงสร้างที่ใช้คำให้:
import Cocoa struct studentMarks { var mark1 = 100 var mark2 = 78 var mark3 = 98 } let marks = studentMarks() print("Mark1 是 \(marks.mark1)") print("Mark2 是 \(marks.mark2)") print("Mark3 是 \(marks.mark3)")
เอาท์พุทการทำงานของโปรแกรมข้างต้นเป็น:
Mark1 是 100 Mark2 是 78 Mark3 是 98
ตัวอย่างเช่นเราเข้าถึง 'studentMarks' เพื่อผลสัมฤทธิ์ของนักเรียนผ่านชื่อโครงสร้าง สมาชิกโครงสร้างจะเริ่มต้นที่จะ mark1, Mark2, mark3 ชนิดข้อมูลจำนวนเต็ม
จากนั้นเราจะใช้ studentMarks โครงสร้างหลักLet () จะยกตัวอย่างและส่งผ่านไปยังเครื่องหมาย
สุดท้ายเราผ่านจำนวนมูลค่าให้กับสมาชิกเข้าถึงโครงสร้าง
ค่านิยมดั้งเดิมและการโคลนของโครงสร้างที่มีการยกตัวอย่างจากตัวอย่างต่อไปนี้ของโครงสร้าง:
import Cocoa struct MarksStruct { var mark: Int init(mark: Int) { self.mark = mark } } var aStruct = MarksStruct(mark: 98) var bStruct = aStruct // aStruct 和 bStruct 是使用相同值的结构体! bStruct.mark = 97 print(aStruct.mark) // 98 print(bStruct.mark) // 97
เอาท์พุทการทำงานของโปรแกรมข้างต้นเป็น:
98 97
การประยุกต์ใช้โครงสร้าง
ในรหัสของคุณคุณสามารถกำหนดโครงสร้างที่กำหนดเองชนิดข้อมูลของคุณ
ตัวอย่างของโครงสร้างอยู่เสมอในการกำหนดชนิดข้อมูลที่กำหนดเองของคุณผ่านค่า
ให้สอดคล้องกับกฎทั่วไปเมื่อสอดคล้องกับหนึ่งหรือมากกว่าเกณฑ์ต่อไปนี้พิจารณาโครงสร้างอาคาร:
- วัตถุประสงค์หลักของโครงสร้างที่จะใช้ในการห่อหุ้มขนาดเล็กจำนวนข้อมูลที่เกี่ยวข้องกับค่าง่าย
- เหตุผลที่จะคาดหวังว่าการกำหนดเช่นโครงสร้างหรือการถ่ายโอนข้อมูลที่ห่อหุ้มจะถูกคัดลอกไม่ได้อ้างถึง
- ประเภทของค่าทรัพย์สินที่เก็บไว้ในโครงสร้างก็จะถูกคัดลอกไม่ได้อ้างถึง
- โครงสร้างไม่จำเป็นต้องได้รับมรดกหรือทรัพย์สินอื่น ๆ ของพฤติกรรมที่มีอยู่แล้ว
ยกตัวอย่างเช่นสถานการณ์ต่อไปนี้สำหรับการใช้งานของโครงสร้าง:
- ขนาดทางเรขาคณิตและรูปทรงของแพคเกจ
width
คุณสมบัติและheight
ของสถานที่ซึ่งทั้งสองเป็นDouble
ประเภท - เส้นทางในช่วงหนึ่งแพคเกจ
start
คุณสมบัติและlength
คุณสมบัติทั้งสองซึ่งเป็นInt
ประเภท - ระบบสามมิติที่แพคเกจการประสานงาน
x
,y
และz
คุณสมบัติสามDouble
ประเภท
ตัวอย่างของโครงสร้างที่ถูกส่งผ่านโดยค่ามากกว่าโดยการอ้างอิง
import Cocoa struct markStruct{ var mark1: Int var mark2: Int var mark3: Int init(mark1: Int, mark2: Int, mark3: Int){ self.mark1 = mark1 self.mark2 = mark2 self.mark3 = mark3 } } print("优异成绩:") var marks = markStruct(mark1: 98, mark2: 96, mark3:100) print(marks.mark1) print(marks.mark2) print(marks.mark3) print("糟糕成绩:") var fail = markStruct(mark1: 34, mark2: 42, mark3: 13) print(fail.mark1) print(fail.mark2) print(fail.mark3)
เอาท์พุทการทำงานของโปรแกรมข้างต้นเป็น:
优异成绩: 98 96 100 糟糕成绩: 34 42 13
ตัวอย่างข้างต้นเรากำหนด markStruct โครงสร้างสามสมาชิกของทรัพย์สิน: mark1, mark2 และ mark3 โครงสร้างในร่างกายโดยใช้คุณสมบัติสมาชิกใช้คำหลักตนเอง
จากตัวอย่างที่เราสามารถเข้าใจได้ดีเช่นโครงสร้างผ่านค่า