Sự khác biệt giữa 'let' và 'var' trong Swift là gì?

{{FormatNumbertoThousand(model.total_like)}} lượt thích
501 lượt xem
Swift junior
  • Đối với các kiểu cơ bản, từ khóa let định nghĩa một hằng số:
    let theAnswer = 42

    Giá trị của một hằng số không cần biết tại thời điểm biên dịch, nhưng bạn phải chỉ định giá trị chính xác một lần.

  • var định nghĩa một biến bình thường.

Cả varlet đều là tham chiếu/con trỏ, do đó lettham chiếu/con trỏ hằng số. Sử dụng các kiểu cơ bản không thực sự cho thấy let khác với const như thế nào. Sự khác biệt xuất hiện khi sử dụng nó với các instance của lớp (kiểu tham chiếu):

class CTest
{
   var str : String = ""
} 

let letTest = CTest()
letTest.str = "test" // OK

letTest.str = "another test" // Still OK

//letTest = CTest() // Error

var varTest1 = CTest()
var varTest2 = CTest()
var varTest3 = CTest()

varTest1.str = "var 1"
varTest2.str = "var 2"
varTest3 = varTest1
varTest1.str = "var 3"

varTest3.str // "var 3"
{{login.error}}