Apex - Loại dữ liệu

Hiểu các loại dữ liệu

Ngôn ngữ Apex được gõ mạnh nên mọi biến trong Apex sẽ được khai báo với kiểu dữ liệu cụ thể. Tất cả các biến apex được khởi tạo ban đầu thành null. Nhà phát triển luôn khuyên bạn nên đảm bảo rằng các giá trị thích hợp được gán cho các biến. Nếu không, các biến như vậy khi được sử dụng, sẽ ném ra các ngoại lệ con trỏ null hoặc bất kỳ ngoại lệ nào chưa được xử lý.

Apex hỗ trợ các kiểu dữ liệu sau:

  • Nguyên thủy (Số nguyên, Đôi, Dài, Ngày, Giờ, Chuỗi, ID hoặc Boolean)

  • Bộ sưu tập (Danh sách, Bộ và Bản đồ) (Được đề cập trong Chương 6)

  • sObject

  • Enums

  • Lớp, Đối tượng và Giao diện (Được đề cập trong Chương 11, 12 và 13)

Trong chương này, chúng ta sẽ xem xét tất cả Các kiểu dữ liệu nguyên thủy, sObjects và Enums. Chúng ta sẽ xem xét Bộ sưu tập, Lớp, Đối tượng và Giao diện trong các chương sắp tới vì chúng là những chủ đề chính cần học từng cá nhân.

Các kiểu dữ liệu ban đầu

Trong phần này, chúng ta sẽ thảo luận về Các kiểu dữ liệu ban đầu được hỗ trợ bởi Apex.

Số nguyên

Một số 32 bit không bao gồm bất kỳ dấu thập phân nào. Phạm vi giá trị cho điều này bắt đầu từ -2,147,483,648 và giá trị lớn nhất lên đến 2,147,483,647.

Example

Chúng tôi muốn khai báo một biến sẽ lưu trữ số lượng thùng cần được vận chuyển đến người mua của nhà máy chế biến hóa chất.

Integer barrelNumbers = 1000;
system.debug(' value of barrelNumbers variable: '+barrelNumbers);

Các System.debug() hàm in ra giá trị của biến để chúng ta có thể sử dụng nó để gỡ lỗi hoặc để biết giá trị của biến hiện tại.

Dán đoạn mã trên vào Bảng điều khiển dành cho nhà phát triển và nhấp vào Thực thi. Sau khi các nhật ký được tạo, nó sẽ hiển thị giá trị của biến "Số thùng" là 1000.

Boolean

Biến này có thể là true, false hoặc null. Nhiều lần, loại biến này có thể được sử dụng làm cờ trong lập trình để xác định xem điều kiện cụ thể được đặt hay không.

Example

Nếu lô hàng Boolean được đặt là true, thì nó có thể được khai báo là:

Boolean shipmentDispatched;
shipmentDispatched = true;
System.debug('Value of shipmentDispatched '+shipmentDispatched);

Ngày

Loại biến này chỉ ra một ngày. Điều này chỉ có thể lưu trữ ngày chứ không phải thời gian. Để lưu ngày cùng với thời gian, chúng ta sẽ cần lưu trữ nó trong biến DateTime.

Example

Hãy xem xét ví dụ sau để hiểu cách hoạt động của biến Ngày.

//ShipmentDate can be stored when shipment is dispatched.
Date ShipmentDate = date.today();
System.debug('ShipmentDate '+ShipmentDate);

Dài

Đây là số 64 bit không có dấu thập phân. Điều này được sử dụng khi chúng ta cần một phạm vi giá trị rộng hơn giá trị được cung cấp bởi Integer.

Example

Nếu doanh thu của công ty được lưu trữ, thì chúng tôi sẽ sử dụng kiểu dữ liệu là Long.

Long companyRevenue = 21474838973344648L;
system.debug('companyRevenue'+companyRevenue);

Vật

Chúng tôi có thể coi đây là bất kỳ kiểu dữ liệu nào được hỗ trợ trong Apex. Ví dụ, biến Class có thể là đối tượng của lớp đó, và kiểu chung sObject cũng là một đối tượng và kiểu đối tượng cụ thể tương tự như Account cũng là Object.

Example

Hãy xem xét ví dụ sau để hiểu cách hoạt động của biến bject.

Account objAccount = new Account (Name = 'Test Chemical');
system.debug('Account value'+objAccount);

Note - Bạn cũng có thể tạo một đối tượng của lớp được xác định trước, như được đưa ra bên dưới -

//Class Name: MyApexClass
MyApexClass classObj = new MyApexClass();

Đây là đối tượng lớp sẽ được sử dụng làm biến lớp.

Chuỗi

Chuỗi là bất kỳ bộ ký tự nào trong dấu ngoặc kép. Nó không có bất kỳ giới hạn nào về số lượng ký tự. Ở đây, kích thước heap sẽ được sử dụng để xác định số lượng ký tự. Điều này hạn chế sự độc quyền tài nguyên của chương trình Apex và cũng đảm bảo rằng nó không quá lớn.

Example

String companyName = 'Abc International';
System.debug('Value companyName variable'+companyName);

Thời gian

Biến này được sử dụng để lưu trữ thời gian cụ thể. Biến này phải luôn được khai báo bằng phương thức tĩnh hệ thống.

Bãi

Blob là một tập hợp dữ liệu nhị phân được lưu trữ dưới dạng đối tượng. Điều này sẽ được sử dụng khi chúng tôi muốn lưu trữ tệp đính kèm trong lực lượng bán hàng thành một biến. Kiểu dữ liệu này chuyển đổi các tệp đính kèm thành một đối tượng duy nhất. Nếu blob được chuyển đổi thành một chuỗi, thì chúng ta có thể sử dụng các phương thức toString và valueOf cho tương tự.

sObject

Đây là một kiểu dữ liệu đặc biệt trong Salesforce. Nó tương tự như một bảng trong SQL và chứa các trường tương tự như các cột trong SQL. Có hai loại sObjects - Standard và Custom.

Ví dụ: Tài khoản là một sObject tiêu chuẩn và bất kỳ đối tượng nào khác do người dùng xác định (như đối tượng Khách hàng mà chúng tôi đã tạo) là một sObject tùy chỉnh.

Example

//Declaring an sObject variable of type Account
Account objAccount = new Account();

//Assignment of values to fields of sObjects
objAccount.Name = 'ABC Customer';
objAccount.Description = 'Test Account';
System.debug('objAccount variable value'+objAccount);

//Declaring an sObject for custom object APEX_Invoice_c
APEX_Customer_c objCustomer = new APEX_Customer_c();

//Assigning value to fields
objCustomer.APEX_Customer_Decscription_c = 'Test Customer';
System.debug('value objCustomer'+objCustomer);

Enum

Enum là một kiểu dữ liệu trừu tượng lưu trữ một giá trị của một tập hợp hữu hạn các số nhận dạng được chỉ định. Bạn có thể sử dụng từ khóa Enum để định nghĩa một Enum. Enum có thể được sử dụng như bất kỳ loại dữ liệu nào khác trong Salesforce.

Example

Bạn có thể khai báo các tên có thể có của Hợp chất hóa học bằng cách thực hiện đoạn mã sau:

//Declaring enum for Chemical Compounds
public enum Compounds {HCL, H2SO4, NACL, HG}
Compounds objC = Compounds.HCL;
System.debug('objC value: '+objC);