2016-09-20 9 views
0

私のDプログラム内にdup関数を作成すると、配列のdupプロパティを使用できなくなります。このコードは、 モジュール内でdup関数を作成する - 配列のdupプロパティと衝突する

import std.stdio; 

void main() { 
    double[] v = [0.1, 0.2, 0.3]; 
    writeln(v.dup); 
} 

に動作します。しかし、このコードが返されます "clash.d(9):エラー:関数clash.dup(ダブルエックス)は引数の型を使用して呼び出すことはできません(ダブル[])"

import std.stdio; 

double dup(double x) { 
    return x; 
} 

void main() { 
    double[] v = [0.1, 0.2, 0.3]; 
    writeln(v.dup); 
} 

私のプログラムでdup関数を定義し、配列のdupプロパティを失うことはできませんか?地元の過負荷セットに

答えて

5

aliasそれを右独自のdup関数定義以下

alias dup = object.dup; 

+0

これは機能します。ありがとう。 「オブジェクト」がどこから来たのか、リファレンスを提供するのか教えていただけますか? – user2225804

+1

druntimeに暗黙的にインポートされたモジュールです:http://dlang.org/phobos/object.html dup関数はそこからのものです(クラスObject、Exception、エイリアス文字列、その他の基本グローバル名)。自動的にインポートされるだけでなく、特別なことはないので、エイリアス行が動作する理由は、通常の名前検索とハイジャックの規則に従います。 –

関連する問題