So sánh kiểu dữ liệu c năm 2024

Thứ tự từ điển là một kiến thức quan trọng khi học về xâu ký tự, bài viết này mình sẽ hướng dẫn các bạn cách xác định thứ tự từ điển giữa các xâu ký tự cũng như các hàm và toán tử trong string đã cung cấp sẵn

NỘI DUNG :

  • Thứ Tự Từ Điển (Lexicographically) Là Gì ?
  • Toán Tử So Sánh String Và Hàm Compare()
  • Video Tutorial

1. Thứ Tự Từ Điển (Lexicographically) Là Gì ?

Thứ tự từ điển của xâu ký tự hiểu đơn giản là thứ tự abc trong bảng chữ cái, trong đó ký tự nào đứng trước trong bảng chữ cái sẽ có thứ tự từ điển nhỏ hơn.

Đối với chuỗi ký tự thì thứ tự từ điển của nó so với chuỗi ký tự khác được xác định bằng ký tự khác nhau đầu tiên của 2 xâu.

Mình có bài viết về kiểu dữ liệu trong lập trình nếu bạn nào chưa đọc thì có thể ghé địa chỉ này để đọc bạn nhé.

Kiến thức lập trình: Tìm hiểu kiểu dữ liệu (data type) - cometec (vncometech.com)

Kiểu dữ liệu nguyên thủy (Primitive data type)

So sánh kiểu dữ liệu c năm 2024

Kiểu dữ liệu nguyên thủy (Primitive Data Type) là các kiểu dữ liệu cơ bản, mà không được tạo ra bằng cách kết hợp các kiểu dữ liệu khác.

Kiểu dữ liệu nguyên thủy thì không phải ngôn ngữ lập trình nào cũng phải có ví dụ như Dart. Các kiểu dữ liệu nguyên thủy thường được hỗ trợ bởi ngôn ngữ lập trình và được sử dụng để lưu trữ các giá trị đơn giản như số nguyên, số thực, ký tự và boolean.

Các kiểu dữ liệu nguyên thủy thường có kích thước cố định và có giá trị mặc định khi chương trình được biên dịch chương trình và không thể null được nhé.

1. Các kiểu dữ liệu nguyên thủy

Thông thường chúng ta có các kiểu dữ liệu nguyên thủy sau:

  • Số nguyên (interger): Dùng để lưu trữ các số nguyên.
  • Số thực (float, double): Liêu giá trị số thực
  • Kiểu logic (boolean): Lưu trữ giá trị đúng hoặc sai trong chương trình.
  • Kiểu ký tự (Char): Chỉ lưu trữ một ký tự

2. Vai trò của kiểu dữ liệu nguyên thủy

Cả kiểu dữ liệu nguyên thủy và đối tượng đều cũng chỉ lưu trữ các giá trị cơ bản vậy thì kiểu dữ liệu nguyên thủy này có gì đặc biệt cùng mình tìm hiểu ngay sau đây:

  • Xử lý nhanh hơn: Kiểu dữ liệu nguyên thủy có kích thước cố định và được xác định trước, nên chúng có thể được lưu trữ và xử lý nhanh hơn so với các kiểu dữ liệu phức tạp hơn.
  • Sử dụng an toàn hơn: Kiểu dữ liệu nguyên thủy luôn có giá trị mặc định nên không null được, nên khi dùng nó tự tin hơn hẳn vì chương trình của chúng ta không bị lỗi bởi vì ăn null được.
  • Cơ sở để lưu trữ dữ liệu: Vì không phải ngôn ngữ nào cũng có kiểu đối tượng tương tự như java đâu nên khi nó là duy nhất thì quan trọng nhất là phải rồi.

3. Hầu hết các ngôn ngữ lập trình đều có kiểu dữ liệu nguyên thủy

Hầu hết các ngôn ngữ lập trình đều hỗ trợ các kiểu dữ liệu nguyên thủy. Bởi vì các kiểu dữ liệu nguyên thủy là các kiểu dữ liệu cơ bản và quan trọng trong lập trình, vì vậy hầu hết các ngôn ngữ lập trình đều hỗ trợ chúng.

Các kiểu dữ liệu nguyên thủy thường được định nghĩa trong ngôn ngữ lập trình và được sử dụng để định nghĩa biến và hằng số trong chương trình. Các ngôn ngữ lập trình phổ biến như C, C++, Java, Python, JavaScript, Ruby, PHP, và Swift đều hỗ trợ các kiểu dữ liệu nguyên thủy.

Tuy nhiên, có một số ngôn ngữ lập trình không hỗ trợ kiểu dữ liệu nguyên thủy hoặc có cách định nghĩa kiểu dữ liệu khác. Ví dụ, ngôn ngữ Lisp không có kiểu dữ liệu nguyên thủy truyền thống, thay vào đó sử dụng các kiểu dữ liệu đối tượng như danh sách và cây.

Kiểu dữ liệu đối tượng

Kiểu dữ liệu đối tượng (Object Data Type) là một kiểu dữ liệu trong lập trình hướng đối tượng (OOP) được sử dụng để định nghĩa các đối tượng và cấu trúc dữ liệu phức tạp hơn.

Kiểu dữ liệu đối tượng thường được định nghĩa bởi người dùng hoặc được cung cấp bởi ngôn ngữ lập trình

Một đối tượng bao gồm các thuộc tính (properties) và phương thức (methods). Thuộc tính là các biến được lưu trữ trong đối tượng, còn phương thức là các hàm được sử dụng để thực hiện các hoạt động trên đối tượng đó.

Kiểu dữ liệu đối tượng khi chúng ta không khởi tạo hoặc gán giá trị cho nó thì nó null. Các kiểu dữ liệu giống với kiểu dữ liệu nguyên thủy được ngôn ngữ lập trình cung cấp cho ta nhiều phương thức để xử lý dữ liệu đó hơn.

Trong phạm vi bài này mình chỉ tập trung vào kiểu dữ liệu đối tượng do ngôn ngữ lập trình định nghĩa, còn cách xây dựng một đối tượng mình sẽ trình bày ở những bài viết tiếp theo.

1. Các kiểu dữ liệu đối tượng mà ngôn ngữ lập trình cung cấp

Về chức năng các kiểu dữ liệu đối tượng loại này không khác kiểu dữ liệu nguyên thủy là mấy.


Trong ngôn ngữ Java

  • String: đại diện cho chuỗi ký tự.
  • Integer, Double, Float, Long: đại diện cho các kiểu số nguyên và số thực.
  • Boolean: đại diện cho giá trị boolean true hoặc false.
  • ArrayList: đại diện cho một danh sách có thể thay đổi kích thước.

Trong ngôn ngữ Javascript

  • String: đại diện cho chuỗi ký tự.
  • Number: đại diện cho các kiểu số nguyên và số thực.
  • Boolean: đại diện cho giá trị boolean true hoặc false.
  • Object: đại diện cho một đối tượng có thể chứa các thuộc tính và phương thức.

Trong ngôn ngữ PHP

  • String: đại diện cho chuỗi ký tự.
  • Integer, Double, Float: đại diện cho các kiểu số nguyên và số thực.
  • Boolean: đại diện cho giá trị boolean true hoặc false.
  • Array: đại diện cho một danh sách có thể thay đổi kích thước.

So sánh kiểu đối tượng và kiểu nguyên thủy

So sánh kiểu dữ liệu c năm 2024

Trong lập trình có những kiểu dữ liệu đối tượng tương tự chức năng với kiểu dữ liệu nguyên thủy là bởi vì các kiểu dữ liệu đối tượng cung cấp các tính năng và khả năng mở rộng mà các kiểu dữ liệu nguyên thủy không thể đáp ứng được

Kiểu dữ liệu đối tượng cho phép chúng ta định nghĩa các đối tượng và cấu trúc dữ liệu phức tạp hơn để đáp ứng nhu cầu của chương trình. Với kiểu dữ liệu đối tượng, chúng ta có thể tạo ra các đối tượng phức tạp bao gồm các thuộc tính và phương thức, và các đối tượng này có thể tương tác với nhau để thực hiện các chức năng cụ thể. Trong khi đó khi chúng ta muốn đại diện cho các đối tượng phức tạp hơn, chẳng hạn như một người, một sản phẩm, một tài khoản ngân hàng, thì các kiểu dữ liệu nguyên thủy không đủ để mô tả chúng.

Kiểu dữ liệu đối tượng cung cấp nhiều tính năng hơn so với các kiểu dữ liệu nguyên thủy. Chúng cho phép chúng ta sử dụng kế thừa để tái sử dụng code, đóng gói để giữ các thuộc tính và phương thức của đối tượng được bảo mật, và đa hình để cho phép các đối tượng khác nhau có thể sử dụng các phương thức cùng tên một cách khác nhau.

Hơn nữa, các kiểu dữ liệu đối tượng cũng cho phép chúng ta tạo ra các đối tượng phù hợp với nhu cầu cụ thể của chương trình.

Một điểm khác biệt chính giữa kiểu dữ liệu đối tượng và kiểu dữ liệu nguyên thủy là tính chất tham chiếu và tham trị của chúng.

Kiểu dữ liệu nguyên thủy được lưu trữ trong vùng nhớ của máy tính và được truyền theo cơ chế tham trị (pass by value) trong các hàm và phương thức. Khi chúng ta truyền một biến kiểu dữ liệu nguyên thủy vào một hàm hoặc phương thức, một bản sao của giá trị của biến đó được tạo ra và được truyền vào hàm. Điều này có nghĩa là giá trị của biến gốc không bị thay đổi khi giá trị của biến được thay đổi trong hàm.

Ngược lại, kiểu dữ liệu đối tượng được lưu trữ trong vùng nhớ và biến được sử dụng để tham chiếu đến vùng nhớ đó. Khi chúng ta truyền một biến kiểudữ liệu đối tượng vào một hàm hoặc phương thức, một bản sao của tham chiếu đến vùng nhớ của đối tượng được tạo ra và được truyền vào hàm. Điều này có nghĩa là khi giá trị của đối tượng được thay đổi trong hàm, giá trị của biến gốc cũng sẽ bị thay đổi, bởi vì cả biến và đối tượng đều tham chiếu đến cùng một vùng nhớ.

Nếu bạn chưa biết đến tham trị và tham chiếu thì có thể đọc bài viết này của mình

Một điều đặc biệt nữa khi dùng kiểu dữ liệu đối tượng thì chúng có thể null được còn kiểu nguyên thủy không thể thực hiện được điều này.