Scopes và shadowing

Mỗi scope của một biến đều được giới hạn trong một block (khối lệnh).

Học viên có thể shadow (che khuất) các biến, bao gồm các biến ở ngoài phạm vi và các biến ở trong cùng một scope:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Speaker Notes

  • Trình bày rằng mỗi phạm vi của một biến bị giới hạn bằng cách thêm một biến b vào block bên trong ở ví dụ trên, sau đó thử truy cập biến đó từ bên ngoài block.
  • Shadow khác với mutation (đột biến), bởi vì sau khi shadow tất cả các vị trí bộ nhớ của biến đó cùng đồng thời tồn tại. Tất cả đều tồn tại dưới cùng một tên, biến nào được sử dụng trong chương trình tùy thuộc vào việc học viên sử dụng chúng ở đâu trong mã.
  • Mỗi một shadowing variable (biến bóng) đều có thể có một kiểu dữ liệu khác nhau
  • Shadowing có thể khó hiểu ban đầu, nhưng hữu dụng trong việc giữ giá trị sau khi .unwrap().