Functional-programming-records
提供:Dev Guides
関数型プログラミング-レコード
レコードは、固定数の要素を格納するためのデータ構造です。 C言語の構造に似ています。 コンパイル時に、その式はタプル式に変換されます。
レコードを作成するには?
キーワード「レコード」は、レコード名とそのフィールドで指定されたレコードを作成するために使用されます。 その構文は次のとおりです-
record(recodname, {field1, field2, . . fieldn})
レコードに値を挿入する構文は次のとおりです-
#recordname {fieldName1 = value1, fieldName2 = value2 .. fieldNamen = valuen}
Erlangを使用してレコードを作成するプログラム
次の例では、2つのフィールド( sname と sid )を持つ名前 student のレコードを作成しました。
-module(helloworld).
-export([start/0]).
-record(student, {sname = "", sid}).
start() ->
S = #student{sname = "Sachin",sid = 5}.
C ++を使用してレコードを作成するプログラム
次の例は、オブジェクト指向プログラミング言語であるC ++を使用してレコードを作成する方法を示しています-
#include<iostream>
#include<string>
using namespace std;
class student {
public:
string sname;
int sid;
15
};
int main() {
student S;
S.sname = "Sachin";
S.sid = 5;
return 0;
}
Erlangを使用してレコード値にアクセスするプログラム
次のプログラムは、関数型プログラミング言語であるErlangを使用してレコード値にアクセスする方法を示しています-
-module(helloworld).
-export([start/0]).
-record(student, {sname = "", sid}).
start() ->
S = #student{sname = "Sachin",sid = 5},
io:fwrite("~p~n",[S#student.sid]),
io:fwrite("~p~n",[S#student.sname]).
それは次の出力を生成します-
5
"Sachin"
C ++を使用してレコード値にアクセスするプログラム
次のプログラムは、C ++を使用してレコード値にアクセスする方法を示しています-
#include<iostream>
#include<string>
using namespace std;
class student {
public:
string sname;
int sid;
};
int main() {
student S;
S.sname = "Sachin";
S.sid = 5;
cout<<S.sid<<"\n"<<S.sname;
return 0;
}
それは次の出力を生成します-
5
Sachin
レコード値を更新するには、値を特定のフィールドに変更し、そのレコードを新しい変数名に割り当てます。 次の2つの例を見て、オブジェクト指向および関数型プログラミング言語を使用してどのように行われるかを理解してください。
Erlangを使用してレコード値を更新するプログラム
次のプログラムは、Erlangを使用してレコード値を更新する方法を示しています-
-module(helloworld).
-export([start/0]).
-record(student, {sname = "", sid}).
start() ->
S = #student{sname = "Sachin",sid = 5},
S1 = S#student{sname = "Jonny"},
io:fwrite("~p~n",[S1#student.sid]),
io:fwrite("~p~n",[S1#student.sname]).
それは次の出力を生成します-
5
"Jonny"
C ++を使用してレコード値を更新するプログラム
次のプログラムは、C ++を使用してレコード値を更新する方法を示しています-
#include<iostream>
#include<string>
using namespace std;
class student {
public:
string sname;
int sid;
};
int main() {
student S;
S.sname = "Jonny";
S.sid = 5;
cout<<S.sname<<"\n"<<S.sid;
cout<<"\n"<< "value after updating"<<"\n";
S.sid = 10;
cout<<S.sname<<"\n"<<S.sid;
return 0;
}
それは次の出力を生成します-
Jonny
5
value after updating
Jonny
10