12/08/2018, 14:51

10 thủ thuật giúp lập trình tốt hơn với Swift

Swift được giới thiệu lần đầu tiên ở WWDC ( Worldwide Developers Conference) vào năm 2014, và từ đó tới nay nó đã dần thay thế Objective-C trong việc phát triển các ứng dụng cho thiết bị của Apple. Và chắc hẳn bất cứ lập trình viên IOS nào cũng gặp phải những khó khăn khi mới sử dụng Swift. Vậy ...

Swift được giới thiệu lần đầu tiên ở WWDC ( Worldwide Developers Conference) vào năm 2014, và từ đó tới nay nó đã dần thay thế Objective-C trong việc phát triển các ứng dụng cho thiết bị của Apple. Và chắc hẳn bất cứ lập trình viên IOS nào cũng gặp phải những khó khăn khi mới sử dụng Swift. Vậy nên sau đây mình xin giới thiệu 10 mẹo nhỏ để giúp bạn lập trình tốt hơn với Swift

1. Extension

Ví dụ bạn có 1 hàmhàm tính bình phương như sau

func square(x: Int) -> Int { return x * x }
var squaredOFFive = square(x: 5)
square(x:squaredOFFive) // 625

Viết như trên thì sẽ có thêm 1 biến không cần thiết trong hàm của chúng ta. Ta có thể viết thêm 1 Extension như sau:

// Better Version
extension Int { 
 var squared: Int { return self * self }
}
5.squared // 25
5.squared.squared // 625

2. Generics

Để in tất cả phần tử trong 1 mảng bạn sẽ làm như sau

// Bad Code
var stringArray = ["Bob", "Bobby", "SangJoon"]
var intArray = [1, 3, 4, 5, 6]
var doubleArray = [1.0, 2.0, 3.0]
func printStringArray(a: [String]) { for s in a { print(s) } }
func printIntArray(a: [Int]) { for i in a { print(i) } }
func printDoubleArray(a: [Double]) {for d in a { print(d) } }

Cần quá nhiều phương thức cho 1 chức năng đơn giản. Hãy đơn giản hoá chúng bằng Generic

// Awesome Code
func printElementFromArray<T>(a: [T]) {
 for element in a { print(element) } }

3. Vòng lặp for và While

VD: In từ "Count" 5 lần

// Okay Code
var i = 0
while 5 > i {
print("Count")
i += 1 }

cần có biến i để không in quá 5 lần. Hãy dùng cách khác tốt hơn mà vẫn đảm bảo đc hiệu quả

// Better Code
for _ in 1...5 { print("Count") }

4. Dùng Guard

VD về Guard let và if let

var myUsername: Double?
var myPassword: Double?
// Hideous Code
func userLogIn() {
 if let username = myUsername {
  if let password = myPassword {
   print("Welcome, (username)"!)
  }
 }
}

Bạn đã bao giờ viết những lệnh if lồng if? Thật sự là nó qua khủng khiếp, dài dòng và nhìn thôi cũng thấy đáng sợ rồi Vậy hãy làm cho nó tốt hơn bằng việc dùng guard let

func userLogIn() {
 guard let username = myUsername, let password = myPassword 
  else { return } 
 print("Welcome, (username)!") }

với guard let, nếu username và password có giá trị nil thì nó sẽ return luôn, nếu không thì sẽ print ra như bình thường. Bạn thấy chúng tốt hơn rất nhiều rồi đúng không!

5. Dùng khởi tạo để tính luôn giá trị

//             
0