Chuyển đổi kiểu

Trong khoa học máy tính, chuyển đổi kiểu,[1][2] ép kiểu,[1][3] ép kiểu dữ liệu (tiếng Anh: type coercion),[3]định dạng kiểu (tiếng Anh: type juggling)[4][5] là những cách khác nhau của việc thay đổi một biểu thức của một kiểu dữ liệu sang một kiểu khác. Ví dụ, chuyển đổi một giá trị số nguyên thành một giá trị số thực dấu phẩy động hoặc đại diện văn bản của nó dưới dạng chuỗi và ngược lại. Chuyển đổi kiểu có thể tận dụng các đặc điểm nhất định của phân cấp kiểu hay trình bày dữ liệu. Hai khía cạnh quan trọng của chuyển đổi kiểu là liệu nó diễn ra ngầm (implicitly) hay tường minh (explicitly),[1][6] và liệu thể hiện dữ liệu bên dưới được chuyển đổi từ dạng này sang sang dạng kia chỉ đơn thuần là biên dịch lại (reinterpreted) như là thể hiện của kiểu dữ liệu kia.

Nhìn chung, cả kiểu dữ liệu cơ bản và phức hợp đều có thể chuyển đổi. Mỗi ngôn ngữ lập trình có các quy tắc riêng để chuyển đổi kiểu. Ngôn ngữ với kiểu mạnh thường ít chuyển đổi ngầm và không khuyến khích biên dịch sự thể hiện, trong khi ngôn ngữ với kiểu yếu thực hiện nhiều chuyển đổi ngầm giữa các kiểu dữ liệu. Ngôn ngữ kiểu yếu thường cho phép ép buộc biên dịch tùy ý giải thích một mục dữ liệu như có các đại diện khác nhau; điều này có thể là một lỗi lập trình không rõ ràng, hoặc một phương pháp kỹ thuật để thực hiện trực tiếp với phần cứng.

Tham khảo

  1. ^ a b c Mehrotra, Dheeraj (2008). S. Chand's Computer Science. tr. 81–83. ISBN 978-8121929844.
  2. ^ Programming Languages - Design and Constructs. 2013. tr. 35. ISBN 978-9381159415.
  3. ^ a b Reilly, Edwin (2004). Concise Encyclopedia of Computer Science. tr. 82, 110. ISBN 0470090952.
  4. ^ Fenton, Steve (2017). Pro TypeScript: Application-Scale JavaScript Development. tr. xxiii. ISBN 978-1484232491.
  5. ^ “PHP: Type Juggling - Manual”. php.net. Truy cập 27 Tháng Một năm 2019.
  6. ^ Olsson, Mikael (2013). C++ Quick Syntax Reference. tr. 87–89. ISBN 978-1430262770.

Liên kết ngoài

  • Casting in ABAP
  • Casting in Ada
  • Casting in C++
  • C++ Reference Guide Why I hate C++ Cast Operators, by Danny Kalev
  • Casting in Java
  • Implicit Conversions in C#
  • Implicit Type Casting at Cppreference.com
  • Static and Reinterpretation castings in C++ Lưu trữ 2017-08-10 tại Wayback Machine
  • Upcasting and Downcasting
  • x
  • t
  • s
Không xác định
Số
  • Độ chính xác tùy ý hay bignum
  • Phức
  • Thập phân
  • Dấu phẩy tĩnh
  • Dấu phẩy động
    • Độ chính xác thấp
      • Minifloat
      • Bán chính xác
      • bfloat16
    • Độ chính xác đơn
    • Độ chính xác kép
    • Độ chính xác bậc bốn
    • Độ chính xác bậc tám
    • Độ chính xác mở rộng
      • Long double
  • Nguyên
    • có dấu và không dấu
  • Khoảng
  • Hữu tỉ
Con trỏ
Văn bản
  • Ký tự
  • Chuỗi
    • kết thúc rỗng
Phức hợp
  • Kiểu dữ liệu đại số
    • tổng quát
  • Mảng
  • Mảng kết hợp
  • Lớp
  • Phụ thuộc
  • Equality
  • Quy nạp
  • Giao
  • Danh sách
  • Đối tượng
    • siêu đối tượng
  • Kiểu tùy chọn
  • Tích
  • Bản ghi hay Struct
  • Refinement
  • Tập hợp
  • Hợp
    • tagged
Khác
  • Boole
  • Kiểu đáy
  • Collection
  • Kiểu liệt kê
  • Ngoại lệ
  • Kiểu hàm
  • Kiểu dữ liệu mờ
  • Kiểu dữ liệu đệ quy
  • Đèn báo
  • Stream
  • Kiểu đỉnh
  • Lớp kiểu
  • Kiểu đơn vị
  • Void
Chủ đề
liên quan