สำหรับ Swift 4 คุณสามารถกู้คืน++
และ--
ตัวดำเนินการเป็นส่วนขยายInt
และประเภทอื่น ๆ นี่คือตัวอย่าง:
extension Int{
static prefix func ++(x: inout Int) -> Int {
x += 1
return x
}
static postfix func ++(x: inout Int) -> Int {
defer {x += 1}
return x
}
static prefix func --(x: inout Int) -> Int {
x -= 1
return x
}
static postfix func --(x: inout Int) -> Int {
defer {x -= 1}
return x
}
}
มันทำงานในลักษณะเดียวกันประเภทอื่น ๆ เช่นUIInt
, Int8
, Float
, Double
ฯลฯ
คุณสามารถวางส่วนขยายเหล่านี้ในไฟล์เดียวในไดเรกทอรีรากของคุณและจะสามารถใช้งานได้ภายในไฟล์อื่น ๆ ของคุณที่นั่น
ฉันสังเกตเห็นการลงคะแนนสองสามครั้งสำหรับคำตอบที่นี่เกือบจะทันทีที่ฉันโพสต์ไว้ ซึ่งฉันใช้เป็นข้อขัดแย้งทางปรัชญามากกว่าการวิจารณ์ว่ารหัสของฉันทำงานอย่างไร มันทำงานได้อย่างสมบูรณ์แบบถ้าคุณตรวจสอบในสนามเด็กเล่น
เหตุผลที่ฉันโพสต์คำตอบนี้เป็นเพราะฉันไม่เห็นด้วยกับการทำให้ภาษาการเขียนโปรแกรมคอมพิวเตอร์แตกต่างกันโดยไม่จำเป็น
การมีความคล้ายคลึงกันมากระหว่างภาษาทำให้พวกเขาเรียนรู้และสลับจากภาษาหนึ่งไปอีกภาษาหนึ่งได้ง่ายขึ้น
นักพัฒนามักใช้ภาษาการเขียนโปรแกรมหลายภาษามากกว่าหนึ่งภาษา และเป็นเรื่องยุ่งยากที่จะเปลี่ยนจากภาษาหนึ่งเป็นอีกภาษาหนึ่งเมื่อไม่มีการประชุมและไม่มีมาตรฐานทั่วไปในทุกภาษา
ฉันเชื่อว่าควรมีความแตกต่างทางไวยากรณ์ระหว่างภาษาเท่าที่จำเป็นเท่านั้นและไม่มากไปกว่านี้