มีบางอย่างที่ฉันไม่เข้าใจทั้งหมดเกี่ยวกับการกลายพันธุ์ประเภทค่าใน Swift เนื่องจากสถานะ iBook "The Swift Programming Language": โดยค่าเริ่มต้นคุณสมบัติของประเภทค่าไม่สามารถแก้ไขได้จากวิธีการอินสแตนซ์ ดังนั้นเพื่อให้เป็นไปได้เราสามารถประกาศวิธีการโดยใช้mutatingคีย์เวิร์ดภายในโครงสร้างและ enums สิ่งที่ยังไม่ชัดเจนสำหรับฉันคือสิ่งนี้: คุณสามารถเปลี่ยน var จากภายนอกโครงสร้างได้ แต่คุณไม่สามารถเปลี่ยนได้จากวิธีการของมันเอง สิ่งนี้ดูเหมือนจะสวนทางกับฉันเช่นเดียวกับในภาษาเชิงวัตถุโดยทั่วไปคุณพยายามห่อหุ้มตัวแปรเพื่อให้สามารถเปลี่ยนแปลงได้จากภายในเท่านั้น ด้วยโครงสร้างสิ่งนี้ดูเหมือนจะเป็นอีกทางหนึ่ง ในการอธิบายอย่างละเอียดนี่คือข้อมูลโค้ด: struct Point { var x = 0, y = 0 mutating func moveToX(x: Int, andY y:Int) { //Needs to be a mutating method in order to work self.x = x self.y …
ฉันพยายามรวบรวมสถานการณ์ทั้งหมดที่ชกมวยเกิดขึ้นใน C #: การแปลงค่าเป็นSystem.Objectประเภท: struct S { } object box = new S(); การแปลงค่าเป็นSystem.ValueTypeประเภท: struct S { } System.ValueType box = new S(); การแปลงค่าของประเภทการแจงนับเป็นSystem.Enumประเภท: enum E { A } System.Enum box = E.A; การแปลงประเภทค่าเป็นการอ้างอิงอินเทอร์เฟซ: interface I { } struct S : I { } I box = new S(); การใช้ประเภทค่าในการต่อสตริง …