'การกลายพันธุ์' ใน Swift

อย่างที่เราทราบกันดีว่าคลาสเป็นประเภทอ้างอิงในขณะที่โครงสร้างและการแจงนับเป็นประเภทค่าที่รวดเร็ว นั่นหมายความว่าอะไรคือคลาสอ็อบเจ็กต์แชร์อินสแตนซ์เดียวของอ็อบเจ็กต์และส่งต่อการอ้างอิงเดียวกันหากส่งผ่านไปยังฟังก์ชันหรืออ็อบเจ็กต์ใหม่ในขณะที่ประเภทค่าคือค่าที่สร้างสำเนาของอ็อบเจ็กต์และส่งผ่านค่าเท่านั้น

This post was originally posted at https://agrawalsuneet.github.io/blogs/mutating-in-swift/ and reposted on Medium on 29th Mar 2019.

class Employee {
    var name : String
    var teamName : String
init(name: String, teamName: String) {
        self.name = name
        self.teamName = teamName
    }
func changeTeam(newTeamName : String){
        self.teamName = newTeamName
    }
}
var emp1 = Employee(name : "Suneet", teamName:"Engineering")
print(emp1.teamName)    //Engineering
emp1.changeTeam(newTeamName : "Product")
print(emp1.teamName)    //Product

      

struct Employee {
    var name : String
    var teamName : String
init(name: String, teamName: String) {
        self.name = name
        self.teamName = teamName
    }
func changeTeam(newTeamName : String){
        self.teamName = newTeamName
        //cannot assign to property: 'self' is immutable
}
}

cannot assign to property: 'self' is immutable

คอมไพเลอร์ยังช่วยเราในการแก้ปัญหาที่เป็นไปได้

note: mark method 'mutating' to make 'self' mutable

struct Employee {
    var name : String
    var teamName : String
init(name: String, teamName: String) {
        self.name = name
        self.teamName = teamName
    }
mutating func changeTeam(newTeamName : String){
        self.teamName = newTeamName
    }
    
}
var emp1 = Employee(name : "Suneet", teamName:"Engineering")
print(emp1.teamName)    //Engineering
emp1.changeTeam(newTeamName : "Product")
print(emp1.teamName)    //Product

      

  • enum
  • โครงสร้าง
  • Int
  • สองเท่า
  • สตริง
  • อาร์เรย์
  • พจนานุกรม
  • ชุด
  • ทูเพิล
  • ฟังก์ชั่น
  • การปิด
  • คลาส

Suggested posts

“เกาะเล็กๆ แห่งนั้นเปลี่ยนแปลงทุกสิ่ง”

วิธีที่เราออกแบบ Lyft Live Activities เพื่อยกระดับประสบการณ์ผู้ขับขี่

“เกาะเล็กๆ แห่งนั้นเปลี่ยนแปลงทุกสิ่ง”

ผู้เปลี่ยนเกมสำหรับรถร่วมโดยสาร จากทุกสิ่งที่เราทำที่ Lyft การออกแบบท่าเต้นของรถปิคอัพระหว่างผู้ขับขี่และผู้ขับขี่เป็นหนึ่งในสิ่งที่ซับซ้อนและเป็นผลสืบเนื่องมากที่สุด การออกแบบท่าเต้นนี้ขึ้นอยู่กับ Lyft ที่ทำหลายสิ่งหลายอย่างได้ดี แต่การรักษาผู้ขับขี่ให้ทันความเร็วเป็นสิ่งสำคัญ

แอป LifeCycle

แอป LifeCycle

: หมุนเวียนตั้งแต่เปิดแอปไปจนถึงปิดเครื่อง: ใช้งานได้โดยจัดการหน่วยความจำหรือข้อมูล ⬆️ ความปลอดภัยสามารถประมวลผล UIApplication สถานการณ์ AppDelegate:กำหนดฟังก์ชันที่ออบเจ็กต์ AppDelegate ได้รับ msg ที่ส่งจากออบเจ็กต์ UIApplication และดำเนินการแต่ละรายการ ไม่ทำงาน: สถานะที่แอปไม่ได้ทำงาน ไม่ใช้งาน: สถานะที่แอปกำลังทำงานแต่ไม่ได้รับเหตุการณ์ Active: สถานะที่แอปกำลังทำงานและเหตุการณ์เกิดขึ้นพื้นหลัง: สถานะที่แอปอยู่ในพื้นหลังแต่โค้ดที่ถูกดำเนินการถูกระงับ: สถานะที่แอปอยู่ใน พื้นหลังและการรันไม่มีโค้ดที่จะมอบหมายฟังก์ชันในไฟล์ AppDelegate.swift SceneDelegate เพื่อให้ตอบสนองได้ดีกับฟังก์ชันหลายฉากที่รองรับตั้งแต่ iOS 13 เป็นต้นไป AppDelegate / SceneDelegate AppDelegate 1

Related posts

บทสนทนาอันตราย

บทสนทนาอันตราย

หากเราต้องการจะเติบโตบนโลกใบนี้ต่อไป เราจะต้องสนทนาที่อันตราย คนที่ท้าทายสิ่งที่เราทำ สิ่งที่เรากำลังทำ และสิ่งที่เรากำลังจะทำต่อไป (หรือกำลังวางแผนที่จะทำ)

เครือข่ายทีวีทวิตเตอร์

เครือข่ายทีวีทวิตเตอร์

ของเก่ากลายเป็นของใหม่อีกครั้ง และของที่เคยเป็นประกายระยิบระยับกลับดูจืดชืด ฉันไม่ได้กำลังพูดถึงกางเกงยีนส์ JNCO ที่กลับมาเป็นที่นิยมในหมู่เด็กเท่ๆ ในตัวเมืองพร้อมกับแฟชั่นอื่นๆ ในช่วงปลายทศวรรษ 1990

การพังทลายอย่างช้าๆ: เปิดเผยวิธีที่ผู้คนสูญเสียไปในอาชีพของพวกเขา

การพังทลายอย่างช้าๆ: เปิดเผยวิธีที่ผู้คนสูญเสียไปในอาชีพของพวกเขา

ในโลกที่เปลี่ยนแปลงอย่างรวดเร็วและการแข่งขันในปัจจุบัน อาชีพของคนๆ หนึ่งมีบทบาทสำคัญในการเติบโตส่วนบุคคล ความมั่นคงทางการเงิน และความพึงพอใจในชีวิตโดยรวม อย่างไรก็ตาม ผู้คนจำนวนมากพบว่าตัวเองติดอยู่ในวงจรของความเมื่อยล้าและความไม่พอใจอย่างไม่หยุดยั้ง ค่อยๆ สูญเสียชีวิตการทำงานไป

ติดตามใครก็ได้ด้วยหมายเลขโทรศัพท์ | การสอบสวน OSINT

ติดตามใครก็ได้ด้วยหมายเลขโทรศัพท์ | การสอบสวน OSINT

คุณสามารถเป็น OSINT Investigator, CTF Player หรือเพียงแค่ใครก็ตามที่ได้รับสายสแปม ผู้ที่พยายามยืนยันหมายเลขที่คุณเห็นในโฆษณา