2015-03-10 23 views
5

Trong Swift, tôi đang cố gắng tìm hiểu xem tôi nên làmchuẩn Swift nghiệp cho dấu ngoặc nhọn

if(true) 
{ 
    //stuff 
} 
else 
{ 
    //other stuff 
} 

Hoặc

if(true){ 
    //stuff 
} else{ 
    //other stuff 
} 

Tôi biết rằng về mặt kỹ thuật nó không tạo sự khác biệt, nhưng Tôi đã tự hỏi tiêu chuẩn của ngành là gì và tại sao tiêu chuẩn là ... tiêu chuẩn.

+1

hoàn toàn là ý kiến ​​của một người đàn ông - chúng tôi ** rất mạnh mẽ ** chỉ nhấn mạnh vào phong cách đầu tiên trong mỗi nhóm mà tôi có. đối với tôi, đó là kiểu niềng răng mới "cũ". tùy chọn thứ hai mà bạn liệt kê - mặc dù phổ biến - cực kỳ ngớ ngẩn và phi logic - ** đó là "toán mới" của định dạng ** - không ai có thể giải thích tại sao nó được giới thiệu trong mã và hy vọng nó sẽ biến mất sau một vài năm một ý tưởng tồi. đây là một vấn đề gây tranh cãi và rất khó để biết điều gì là tốt nhất. nghiêm túc như Astro nói nó luôn luôn là một ý tưởng tốt để "làm những gì Apple làm" liên quan đến tất cả các vấn đề thành ngữ. Nhưng không phải cho chúng tôi! – Fattie

+1

bằng cách này cho mọi người trẻ tuổi đọc. "toán mới" là một khái niệm cơ bản, điên rồ, được giới thiệu bởi một số chính phủ về dạy toán (khoảng những năm 70). nó vô cùng vô lý, và sớm bị loại bỏ. – Fattie

+0

Tài liệu hướng dẫn Swift đề xuất rằng dấu ngoặc nhọn mở sau dòng mã trước, trong khi tài liệu C mục tiêu khuyến khích đặt dấu ngoặc nhọn mở trên dòng theo dòng mã trước. – ScottyBlades

Trả lời

6

Kiểu khung thường là vấn đề quan điểm.

Tuy nhiên, trong trường hợp này, có điều gì đó cần thực hiện. Apple sử dụng cú pháp thứ hai mà bạn đã cung cấp độc quyền trong tất cả tài liệu của nó, với một sự phân biệt cho Swift: dấu ngoặc đơn.

Từ The Swift Programming Language Guide – Control Flow:

Ngoài for-in vòng, Swift hỗ trợ truyền thống C-style for vòng với một điều kiện và một incrementer ...

Đây là dạng tổng quát của định dạng vòng lặp này:

for initialization; condition; increment { 
    statements 
} 

Dấu chấm phẩy tách riêng ba phần của định nghĩa vòng lặp, như trong C. Tuy nhiên, không giống như C, Swif t không cần dấu ngoặc đơn xung quanh toàn bộ số “khởi tạo; điều kiện; tăng "khối.

Nói cách khác, bạn không cần dấu ngoặc đơn xung quanh câu lệnh có điều kiện (trong bất kỳ loại vòng lặp hoặc câu lệnh logic nào) và điều này thường là cách Apple sử dụng nó trong tài liệu.

Vì vậy, trong các mẫu mà bạn đã cung cấp, Apple sẽ sử dụng phong cách này (lưu ý khoảng cách giữa các dấu ngoặc nhọn cũng):

if condition { 
    // Stuff 
} else { 
    // Other stuff 
} 

Một số ví dụ khác từ các tài liệu:

// While loops 
while condition { 
    statements 
} 

// Do-while loops 
do { 
    statements 
} while condition 

// Switch statements 
switch some value to consider { 
case value 1: 
    respond to value 1 
case value 2, 
value 3: 
    respond to value 2 or 3 
default: 
    otherwise, do something else 
} 
+0

Cảm ơn! Tôi đã luôn luôn được dạy để làm điều đó theo cách được liệt kê đầu tiên, nhưng tôi đã bối rối khi nhìn vào tài liệu của apple. Bạn có biết tại sao táo đã chọn định dạng này? –

+0

@ DaniM.Smith Đó là tất cả vấn đề về phong cách, và nó chỉ thực sự quan trọng trong một số ngôn ngữ (và thậm chí với những người đó chỉ với các trường hợp cạnh). Đây là phong cách Apple đã chọn để sử dụng, và nó rõ ràng thực thi tiêu chuẩn của nó khi viết tài liệu, nhưng tôi không biết lý do cụ thể đằng sau quyết định. – AstroCB

+0

Cảm ơn thông tin. –

2

Tôi đã làm việc cho một công ty khác và mỗi người trong số họ đang sử dụng các quy tắc chuẩn/mã hóa khác nhau.

Khi nói đến Apple và xem Swift documentation của họ, có vẻ như họ đang sử dụng tùy chọn thứ hai của bạn.

+1

Nếu bạn muốn mã hóa cho hệ điều hành của Apple và các thiết bị của Apple, tốt hơn là hãy làm theo Phong cách của Apple. (Ý kiến ​​cá nhân) –

Các vấn đề liên quan