C#のアーリーバインディングとは何ですか?
コンパイル時に関数をオブジェクトにリンクするメカニズムは、アーリーバインディングと呼ばれます。静的バインディングとも呼ばれます。 C#は、静的ポリモーフィズムを実装するための2つの手法、つまり関数のオーバーロードと演算子のオーバーロードを提供します。
例を使って関数のオーバーロードについて学びましょう-
同じスコープ内の同じ関数名に対して複数の定義を持つことができます。関数の定義は、引数リスト内の引数のタイプや数によって互いに異なる必要があります。戻り値のタイプのみが異なる関数宣言をオーバーロードすることはできません。
以下は完全な例です-
例
using System;
namespace PolymorphismApplication {
class Printdata {
void print(int i) {
Console.WriteLine("Printing int: {0}", i );
}
void print(double f) {
Console.WriteLine("Printing float: {0}" , f);
}
void print(string s) {
Console.WriteLine("Printing string: {0}", s);
}
static void Main(string[] args) {
Printdata p = new Printdata();
// Call print to print integer
p.print(5);
// Call print to print float
p.print(500.263);
// Call print to print string
p.print("Hello C++");
Console.ReadKey();
}
}
} 出力
Printing int: 5 Printing float: 500.263 Printing string: Hello C++
-
Pythonのラムダバインディングとは何ですか?
プログラムまたは関数ステートメントが実行されると、仮パラメーターの現在の値が(スタックに)保存され、ステートメントのスコープ内で、呼び出しで行われた実際の引数の値にバインドされます。ステートメントが終了すると、これらの仮引数の元の値が復元されます。このプロトコルは完全に再帰的です。ステートメントの本文内で、正式なパラメーターが新しい値に再度バインドされるようにする何かが行われた場合、ラムダバインドスキームは、これがすべて整然と行われることを保証します。 xのバインディングは1つだけです。x=5を実行すると、既存のバインディングの値が変更されるだけです。そのため、デフォルトのパラメーターは、ラ
-
print()関数はPythonで何をしますか?
Python 3では、print()は組み込み関数(オブジェクト)であり、画面に指定した引数を出力するために使用されます。たとえば、 >>> print("Hello!") Hello! >>> print(5) 5 これ以前は、印刷はステートメントでした。次のように使用できます: >>> print "Hello!" Hello! >>> print 5 Hello 各式を順番に評価し、結果のオブジェクトを標準出力に書き込みます。オブジェクトが文字列でない場合は、最初に文字列変