函數語言程式設計 - 元組



元組是一種複合資料型別,具有固定數量的項。元組中的每一項都稱為一個元素。元素的數量就是元組的大小。

在C#中定義元組的程式

下面的程式演示瞭如何在C#(一種面向物件的程式語言)中定義一個包含四個項的元組並列印它們。

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);    
   } 
} 

它將產生以下輸出:

Tuple :(1, 2, 3, (4, 5)) 

在Erlang中定義元組的程式

下面的程式演示瞭如何在Erlang(一種函數語言程式設計語言)中定義一個包含四個項的元組並列印它們。

-module(helloworld).  
-export([start/0]).   

start() -> 
   P = {1,2,3,{4,5}} ,  
   io:fwrite("~w",[P]). 

它將產生以下輸出:

{1, 2, 3, {4, 5}} 

元組的優點

元組具有以下優點:

  • 元組是固定大小的,也就是說,我們不能向元組新增或刪除元素。

  • 我們可以搜尋元組中的任何元素。

  • 元組比列表快,因為它們具有固定的值集。

  • 元組可以用作字典鍵,因為它們包含不可變的值,例如字串、數字等。

元組與列表的比較

元組 列表
元組是不可變的,也就是說,我們不能更新其資料。 列表是可變的,也就是說,我們可以更新其資料。
元組中的元素可以是不同型別。 列表中的所有元素都是同一型別。
元組由圍繞元素的圓括號表示。 列表由圍繞元素的方括號表示。

元組的操作

在本節中,我們將討論一些可以對元組執行的操作。

檢查插入的值是否為元組

方法is_tuple(tuplevalues)用於確定插入的值是否為元組。如果插入的值是元組,則返回true,否則返回false。例如,

-module(helloworld).  
-export([start/0]).  

start() ->  
   K = {abc,50,pqr,60,{xyz,75}} , io:fwrite("~w",[is_tuple(K)]). 

它將產生以下輸出:

True

將列表轉換為元組

方法list_to_tuple(listvalues)將列表轉換為元組。例如,

-module(helloworld).  
-export([start/0]).  

start() ->  
   io:fwrite("~w",[list_to_tuple([1,2,3,4,5])]). 

它將產生以下輸出:

{1, 2, 3, 4, 5} 

將元組轉換為列表

方法tuple_to_list(tuplevalues)將指定的元組轉換為列表格式。例如,

-module(helloworld).  
-export([start/0]).  

start() ->  
   io:fwrite("~w",[tuple_to_list({1,2,3,4,5})]). 

它將產生以下輸出:

[1, 2, 3, 4, 5] 

檢查元組大小

方法tuple_size(tuplename)返回元組的大小。例如,

-module(helloworld).  
-export([start/0]).  

start() ->  
   K = {abc,50,pqr,60,{xyz,75}} ,  
   io:fwrite("~w",[tuple_size(K)]). 

它將產生以下輸出:

5
廣告