Lập trình chức năng - Tuple
Tuple là một kiểu dữ liệu phức hợp có một số thuật ngữ cố định. Mỗi thuật ngữ trong một bộ được gọi làelement. Số phần tử là kích thước của bộ tuple.
Chương trình xác định một bộ giá trị trong C #
Chương trình sau đây trình bày cách xác định một bộ bốn thuật ngữ và in chúng bằng C #, một ngôn ngữ lập trình hướng đối tượng.
using System;
public class Test {
public static void Main() {
var t1 = Tuple.Create(1, 2, 3, new Tuple<int, int>(4, 5));
Console.WriteLine("Tuple:" + t1);
}
}
Nó sẽ tạo ra kết quả sau:
Tuple :(1, 2, 3, (4, 5))
Chương trình xác định một bộ giá trị trong Erlang
Chương trình sau đây chỉ ra cách xác định một bộ bốn thuật ngữ và in chúng bằng cách sử dụng Erlang, một ngôn ngữ lập trình chức năng.
-module(helloworld).
-export([start/0]).
start() ->
P = {1,2,3,{4,5}} ,
io:fwrite("~w",[P]).
Nó sẽ tạo ra kết quả sau:
{1, 2, 3, {4, 5}}
Ưu điểm của Tuple
Tuples cung cấp những ưu điểm sau:
Tuple có kích thước nhỏ về bản chất, tức là chúng ta không thể thêm / xóa các phần tử vào / khỏi một bộ tuple.
Chúng ta có thể tìm kiếm bất kỳ phần tử nào trong một bộ tuple.
Bộ giá trị nhanh hơn danh sách, vì chúng có một bộ giá trị không đổi.
Tuples có thể được sử dụng làm khóa từ điển, vì chúng chứa các giá trị bất biến như chuỗi, số, v.v.
Tuples vs Lists
Tuple | Danh sách |
---|---|
Tuples là immutable, tức là, chúng tôi không thể cập nhật dữ liệu của nó. | Danh sách là mutable, tức là, chúng tôi có thể cập nhật dữ liệu của nó. |
Các phần tử trong một bộ tuple có thể là kiểu khác nhau. | Tất cả các phần tử trong danh sách là cùng một loại. |
Các bộ giá trị được biểu thị bằng dấu ngoặc tròn xung quanh các phần tử. | Danh sách được biểu thị bằng dấu ngoặc vuông xung quanh các phần tử. |
Hoạt động trên Tuples
Trong phần này, chúng ta sẽ thảo luận về một số thao tác có thể được thực hiện trên một bộ tuple.
Kiểm tra xem giá trị được chèn có phải là Tuple hay không
Phương pháp is_tuple(tuplevalues)được sử dụng để xác định xem một giá trị được chèn vào có phải là một bộ hay không. Nó trở lạitrue khi một giá trị được chèn là một bộ giá trị, nếu không nó sẽ trả về false. Ví dụ,
-module(helloworld).
-export([start/0]).
start() ->
K = {abc,50,pqr,60,{xyz,75}} , io:fwrite("~w",[is_tuple(K)]).
Nó sẽ tạo ra kết quả sau:
True
Chuyển đổi một danh sách thành một Tuple
Phương pháp list_to_tuple(listvalues)chuyển đổi một danh sách thành một bộ. Ví dụ,
-module(helloworld).
-export([start/0]).
start() ->
io:fwrite("~w",[list_to_tuple([1,2,3,4,5])]).
Nó sẽ tạo ra kết quả sau:
{1, 2, 3, 4, 5}
Chuyển đổi Tuple thành danh sách
Phương pháp tuple_to_list(tuplevalues)chuyển đổi một tuple được chỉ định sang định dạng danh sách. Ví dụ,
-module(helloworld).
-export([start/0]).
start() ->
io:fwrite("~w",[tuple_to_list({1,2,3,4,5})]).
Nó sẽ tạo ra kết quả sau:
[1, 2, 3, 4, 5]
Kiểm tra kích thước tuple
Phương pháp tuple_size(tuplename)trả về kích thước của một tuple. Ví dụ,
-module(helloworld).
-export([start/0]).
start() ->
K = {abc,50,pqr,60,{xyz,75}} ,
io:fwrite("~w",[tuple_size(K)]).
Nó sẽ tạo ra kết quả sau:
5