Swift: ทำความเข้าใจ // MARK


149

จุดประสงค์ของการเขียนความคิดเห็นใน Swift คืออะไร:

// MARK: This is a comment

เมื่อคุณสามารถทำได้:

// This is a comment

สิ่งที่ไม่// MARKบรรลุ?

คำตอบ:


269

// MARK:และ// MARK: -ไวยากรณ์ในฟังก์ชั่นสวิฟท์เหมือนกันไป#pragma markและ#pragma mark -ไวยากรณ์ใน Objective-C

เมื่อใช้ไวยากรณ์นี้ (บวก// TODO:และ// FIXME:) คุณสามารถรับข้อมูลเพิ่มเติมเพื่อแสดงในแถบกระโดดด่วน

พิจารณาซอร์สโค้ดสองสามบรรทัดเหล่านี้:

// MARK: A mark comment lives here.

func isPrime(_ value: UInt) -> Bool { return true }

ป้อนคำอธิบายภาพที่นี่

และสำหรับการอ้างอิงแถบกระโดดด่วนจะอยู่ที่ด้านบนสุดใน Xcode:

ป้อนคำอธิบายภาพที่นี่

ส่วนใหญ่มีไว้เพื่อช่วยในการนำทางอย่างรวดเร็วภายในไฟล์

สังเกตว่าเส้นประ ( // MARK: -) ทำให้เส้นคั่นที่สวยงามปรากฏขึ้น พิจารณาMARKความคิดเห็นนี้:

// MARK: - A mark comment lives here.

ป้อนคำอธิบายภาพที่นี่

เส้นคั่นสีเทาเข้มเหนือตัวเลือกตัวหนาในเมนูนั้นมาจากเส้นประ

นอกจากนี้เราสามารถบรรลุบรรทัดคั่นนี้ได้โดยไม่ต้องแสดงความคิดเห็นโดยไม่ต้องมีข้อความใด ๆ หลังเส้นประ:

// MARK: -

ป้อนคำอธิบายภาพที่นี่

ตามที่กล่าวไว้// TODO:และ// FIXME:ความคิดเห็นจะปรากฏที่นี่ด้วย

// MARK: - Prime functions

func isPrime(_ value: UInt) -> Bool {
    // TODO: Actually implement the logic for this method
    return true
}

func nthPrime(_ value: UInt) -> Int {
    // FIXME: Returns incorrect values for some arguments
    return 2
}

ป้อนคำอธิบายภาพที่นี่

  • FIXME จะได้รับไอคอนวงดนตรีเล็ก ๆ ที่ช่วยให้พวกเขาโดดเด่น
  • ไอคอน MARK ดูเหมือนสารบัญ
  • ไอคอนสิ่งที่ต้องทำมีลักษณะเหมือนรายการตรวจสอบ

การคลิกที่บรรทัดใดก็ได้ในแถบกระโดดด่วนจะนำคุณไปยังบรรทัดนั้นโดยตรงในซอร์สโค้ด


ฟังก์ชันนี้เป็นฟังก์ชันเฉพาะสำหรับ Swift / Objective-C หรือ Xcode หรือไม่
ma11hew28

Xcode สันนิษฐานว่า แม้ว่าฉันสามารถจินตนาการได้อย่างง่ายดายว่า IDE อื่น ๆ อาจมีพฤติกรรมที่คล้ายคลึงกัน
nhgrif

คุณยังสามารถใส่ยัติภังค์หลังข้อความ// MARK: /Delegate impl. -เพื่อทำเครื่องหมายจุดสิ้นสุดของส่วนหรือทำไมไม่ใส่ทั้งสองอย่าง:// MARK: - Attention! -
Andreas

ยัติภังค์ @ แอนเดรียส-เป็นเพียงเส้นแนวนอน ไม่มีของขวัญเครื่องหมายใด ๆ เพิ่มเติมความหมายของการสิ้นสุดของส่วน
อ๊ะ

@ooops ขออภัยฉันไม่แน่ใจว่าคุณหมายถึงอะไร ใช่มันเป็นเส้นแนวนอน
Andreas


-6

คุณสามารถใช้

// MARK: - Properties
var name: String

// MARK: - Methods
func display() {
}

init(name: String, rollNumber: Int) {

    // TODO: add configuration code
    self.name = name
}

// FIXME: bug XYZ
func fixBug() {

}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.