Trong Groovy, 3 kiểu dữ Numbers - String - Ranges là những kiểu dữ liệu khá phổ biến mà bạn sẽ thường sử dụng
- Numbers được biểu diễn dưới dạng object, tất cả chúng đều là một thể hiện của class Integer.
- String được xây dựng trong Groovy bằng cách đặt văn bản dấu nháy đơn ' hoặc dấu nháy kép ".
- Ranges là cách viết tắt để chỉ định một chuỗi các giá trị. Ranges được biểu thị bằng giá trị đầu tiên và cuối cùng trong chuỗi và Ranges có thể là inclusive hoặc exclusive.
Các kiểu dữ liệu phổ biến trong groovy
Kiểu dữ liệu Numbers
Trong Groovy, Số thực sự được biểu diễn dưới dạng object, tất cả chúng đều là một thể hiện của Integer Class. Để khiến một đối tượng thực hiện một điều gì đó, chúng ta cần gọi một trong các phương thức được khai báo trong class của nó.
Groovy hỗ trợ kiểu integer và float.
- Integer (số nguyên) là một giá trị không bao gồm phân số.
- Float (số thực) là một giá trị thập phân bao gồm phân số thập phân.
Một ví dụ về số trong Groovy được hiển thị bên dưới
Integer x = 5;
Float y = 1.25;
Trong đó x là kiểu Integer và y là kiểu float.
Lý do tại sao các số trong Groovy được định nghĩa là đối tượng nói chung là vì có các yêu cầu để thực hiện các thao tác trên số. Khái niệm cung cấp một class trên các kiểu nguyên thủy được gọi là các wrapper class.
Trên ảnh cho ta thấy trình tự các wrapper class được cung cấp trong Groovy.
Đối tượng của wrapper class chứa hoặc bao bọc kiểu dữ liệu nguyên thủy tương ứng của nó. Quá trình chuyển đổi một kiểu dữ liệu nguyên thủy thành đối tượng được gọi là boxing và việc này được trình biên dịch đảm nhận. Quá trình chuyển đổi đối tượng trở lại kiểu nguyên thủy tương ứng của nó được gọi là unboxing.
Sau đây là một ví dụ về boxing vs unboxing
class Example {
static void main(String[] args) {
Integer x = 5,y = 10,z = 0;
// The the values of 5,10 and 0 are boxed into Integer types
// The values of x and y are unboxed and the addition is performed
z = x+y;
println(z);
}
}
Đầu ra của chương trình trên sẽ là 15. Trong ví dụ trên, các giá trị 5, 10 và 0 trước tiên được boxing vào các biến số nguyên x, y và z tương ứng. Và sau đó, khi việc cộng x và y được thực hiện, các giá trị sẽ được unboxed khỏi các kiểu số nguyên của chúng.
Number Methods
Vì các số trong Groovy được biểu diễn dưới dạng các class nên sau đây là danh sách các method được hỗ trợ sẵn trong class này.
| No | Các Number Method |
|---|---|
| 1 |
xxxValue() Phương thức này lấy number làm tham số và trả về kiểu nguyên thủy dựa trên phương thức được gọi. |
| 2 |
compareTo() Phương thức so sánh là sử dụng so sánh một số với một số khác. Điều này rất hữu ích nếu bạn muốn so sánh giá trị của các số. |
| 3 |
equals() Phương thức này xác định xem đối tượng Số gọi phương thức có bằng đối tượng được truyền làm đối số hay không. |
| 4 |
valueOf() Phương thức valueOf trả về đối tượng Number có liên quan chứa giá trị của đối số được truyền. |
| 5 |
toString() Phương thức này được sử dụng để lấy một đối tượng String biểu thị giá trị của Đối tượng Number. |
| 6 |
parseInt() Phương thức này được sử dụng để lấy kiểu dữ liệu nguyên thủy của một String nhất định. parsXxx() là một phương thức tĩnh và có thể có một hoặc hai đối số. |
| 7 |
abs() Phương thức đưa ra giá trị tuyệt đối của đối số. Đối số có thể là int, float, long, double, short, byte. |
| 8 |
ceil() Phương thức ceil đưa ra số nguyên nhỏ nhất lớn hơn hoặc bằng đối số. |
| 9 |
floor() Phương thức floor đưa ra số nguyên lớn nhất nhỏ hơn hoặc bằng đối số. |
| 10 |
rint() Phương thức rint trả về số nguyên có giá trị gần nhất với đối số. |
| 11 |
round() round là phương thức trả về giá trị dài hoặc int gần nhất, như được đưa ra bởi kiểu trả về của nó. |
| 12 |
min() Phương thức này đưa ra đối số nhỏ hơn trong hai đối số. Đối số có thể là int, float, long, double. |
| 13 |
max() Phương thức này đưa ra giá trị tối đa của hai đối số. Đối số có thể là int, float, long, double. |
| 14 |
exp() Phương thức này trả về cơ số của logarit tự nhiên, e, lũy thừa của đối số. |
| 15 |
log() Phương thức trả về logarit tự nhiên của đối số. |
| 16 |
pow() Phương thức trả về giá trị của đối số đầu tiên được nâng lên lũy thừa của đối số thứ hai. |
| 17 |
sqrt() Phương thức trả về căn bậc hai của đối số. |
| 18 |
sin() Phương thức trả về sin của giá trị kép đã chỉ định. |
| 19 |
cos() Phương thức trả về cosin của giá trị kép đã chỉ định. |
| 20 |
tan() Phương thức trả về tang của giá trị kép đã chỉ định. |
| 21 |
asin() Phương thức trả về arcsine của giá trị kép đã chỉ định. |
| 22 |
acos() Phương thức trả về arccosine của giá trị kép đã chỉ định. |
| 23 |
atan() Phương thức trả về arctang của giá trị kép đã chỉ định. |
| 24 |
atan2() Phương thức Chuyển đổi tọa độ hình chữ nhật (x, y) thành tọa độ cực (r, theta) và trả về theta. |
| 25 |
toDegrees() Phương thức này chuyển đổi giá trị đối số thành độ. |
| 26 |
radian() Phương thức này chuyển đổi giá trị đối số thành radian. |
| 27 |
random() Phương pháp này được sử dụng để tạo một số ngẫu nhiên trong khoảng từ 0,0 đến 1,0. Phạm vi là: 0,0 == Math.random < 1,0. Phạm vi khác nhau có thể đạt được bằng cách sử dụng số học. |
Kiểu dữ liệu String
Một chuỗi String được xây dựng trong Groovy bằng cách đặt text trong dấu ngoặc kép.
Groovy cung cấp nhiều cách khác nhau để biểu thị một chuỗi ký tự. Các chuỗi trong Groovy có thể được đặt trong dấu ngoặc đơn ('), dấu ngoặc kép (“) hoặc dấu ngoặc kép (“”). Hơn nữa, Chuỗi Groovy được bao quanh bởi ba dấu ngoặc kép có thể kéo dài trên nhiều dòng.
Sau đây là một ví dụ về cách sử dụng String trong Groovy -
class Example {
static void main(String[] args) {
String a = 'Hello Single';
String b = "Hello Double";
String c = "'Hello Triple" + "Multiple lines'";
println(a);
println(b);
println(c);
}
}
Khi chạy chương trình trên, chúng ta sẽ nhận được kết quả sau:
Hello Single
Hello Double
'Hello TripleMultiple lines'
String Indexing
String trong Groovy là một chuỗi ký tự được sắp xếp theo thứ tự. Mỗi ký tự riêng lẻ trong một chuỗi có thể được truy cập theo vị trí của nó. Điều này được đưa ra bởi một vị trí chỉ mục (index).
Các string index bắt đầu bằng 0 và kết thúc ở mức nhỏ hơn độ dài của chuỗi một đơn vị. Groovy cũng cho phép các chỉ số âm đếm ngược từ cuối chuỗi.
Sau đây là một ví dụ về cách sử dụng lập chỉ mục chuỗi trong Groovy -
class Example {
static void main(String[] args) {
String sample = "Hello world";
println(sample[4]); // Print the 5 character in the string
//Print the 1st character in the string starting from the back
println(sample[-1]);
println(sample[1..2]);//Prints a string starting from Index 1 to 2
println(sample[4..2]);//Prints a string starting from Index 4 back to 2
}
}
Khi chạy chương trình trên, chúng ta sẽ nhận được kết quả sau:
o
d
el
oll
Các thao tác String cơ bản
Trước tiên hãy tìm hiểu các thao tác String cơ bản trong Groovy. Chúng được đưa ra dưới đây.
| No | Methods & Description |
|---|---|
| 1 |
Concatenation of two strings
(Nối hai chuỗi) Việc nối các chuỗi có thể được thực hiện bằng toán tử '+' đơn giản. |
| 2 |
String Repetition (Lặp lại chuỗi) Việc lặp lại các chuỗi có thể được thực hiện bởi toán tử '*' đơn giản. |
| 3 |
String Length Độ dài của chuỗi được xác định bởi phương thức length() của chuỗi. |
String Methods
Đây là danh sách các phương thức được hỗ trợ bởi String Class.
| No | Methods & Description |
|---|---|
| 1 |
center() Trả về một Chuỗi mới có độ dài numberOfChars bao gồm cả ở bên trái và bên phải với các ký tự khoảng trắng. |
| 2 |
compareToIgnoreCase() So sánh hai chuỗi theo từ điển, bỏ qua sự khác biệt về chữ hoa chữ thường. |
| 3 |
concat() Nối Chuỗi đã chỉ định vào cuối 1 chuỗi. |
| 4 |
eachMatch() Xử lý từng nhóm biểu thức chính quy cho chuỗi con phù hợp của String được gọi. |
| 5 |
endsWith() Kiểm tra xem chuỗi này có kết thúc bằng hậu tố được chỉ định hay không. |
| 6 |
equalsIgnoreCase() So sánh Chuỗi này với Chuỗi khác, bỏ qua việc cân nhắc kiểu chữ. |
| 7 |
getAt() Nó trả về giá trị chuỗi ở vị trí index được chỉ định |
| 8 |
indexOf() Trả về chỉ mục trong Chuỗi này về lần xuất hiện đầu tiên của chuỗi con đã chỉ định. |
| 9 |
matches() Nó cho biết Chuỗi có khớp với biểu thức chính quy đã cho hay không. |
| 10 |
minus() Loại bỏ phần giá trị của Chuỗi. |
| 11 |
next() Phương thức này được gọi bởi toán tử ++ cho class String. Nó tăng ký tự cuối cùng trong String đã cho. |
| 12 |
padLeft() Đệm chuỗi với các khoảng trắng được thêm vào bên trái. |
| 13 |
padRight() Chèn chuỗi với các khoảng trắng được thêm vào bên phải. |
| 14 |
plus() Nối một chuỗi |
| 15 |
previous() Phương thức này được gọi bởi toán tử -- cho CharSequence. |
| 16 |
replaceAll() Thay thế tất cả các lần xuất hiện của một từ (1 cụm từ) nằm trên văn bản được gọi. |
| 17 |
reverse() Tạo một Chuỗi mới ngược lại với Chuỗi này. |
| 18 |
split() Tách Chuỗi này xung quanh các kết quả khớp của biểu thức chính quy đã cho. |
| 19 |
subString() Trả về một Chuỗi mới là chuỗi con của Chuỗi này. |
| 20 |
toUpperCase() Chuyển đổi tất cả các ký tự trong Chuỗi này thành chữ hoa. |
| 21 |
toLowerCase() Chuyển đổi tất cả các ký tự trong Chuỗi này thành chữ thường. |
Kiểu dữ liệu Ranges
Ranges là cách viết tắt để chỉ định một chuỗi các giá trị. Ranges được biểu thị bằng giá trị đầu tiên và cuối cùng trong chuỗi và Ranges có thể bao gồm hoặc loại trừ. Một Include Range bao gồm tất cả các giá trị từ đầu đến cuối, trong khi Exclusive Range bao gồm tất cả các giá trị ngoại trừ giá trị cuối cùng.
Dưới đây là một số ví dụ về Range literals −
- 1..10 - Một ví dụ về Phạm vi bao gồm
- 1..<10 - Một ví dụ về Phạm vi độc quyền
- 'a'..'x' – Phạm vi cũng có thể bao gồm các ký tự
- 10..1 – Phạm vi cũng có thể theo thứ tự giảm dần
- 'x'..'a' – Phạm vi cũng có thể bao gồm các ký tự và theo thứ tự giảm dần.
Sau đây là các phương pháp khác nhau có sẵn cho các Range.
| No | Methods & Description |
|---|---|
| 1 |
contains() Kiểm tra xem một Range có chứa một giá trị cụ thể hay không |
| 2 |
get() Trả về phần tử tại vị trí đã chỉ định trong Range này. |
| 3 |
getFrom() Nhận giá trị thấp hơn của Range này. |
| 4 |
getTo() Lấy giá trị trên của Range này. |
| 5 |
isReverse() Đây có phải là Range đảo ngược, lặp ngược lại |
| 6 |
size() Trả về số phần tử trong Range này. |
| 7 |
subList() Trả về chế độ xem một phần của Range này giữa fromIndex đã chỉ định, bao gồm và toIndex, độc quyền |
Bài tiếp theo: Bài 9 - Hướng dẫn lập trình groovy: Maps & Lists
Không có nhận xét nào: