内容
英語版
このページの英語版を見る
レガシーコード
古いDコードとの互換性を維持するため、多くのレガシー機能が引き続きサポートされている。 このページでは、サポートされている各レガシー機能について説明し、コードを最新化する方法を提案する。 を提案する。
Feature | Summary |
---|---|
body キーワード | body 契約文の後 代わりに を使う。do |
alias ターゲット・ファースト構文 | 代わりにalias name = target を使用する。 |
構造体/共用体のポストブリット | 代わりにコピーコンストラクタを使う。 |
body キーワード
body は、"契約"ステートメントの後に関数/メソッドのボディを指定するために使用されるキーワードであった:
class Foo { void bar(int i) in { assert(i >= 42); } body { /* 何か面白いことをする */ } string method(string s) out(v) { assert(v.length == s.length); } body { /* もっと面白いことをする */ } void noBody() { /* 契約もボディもない */ } }
是正措置
代わりにdo キーワードを使用する(v2.075.0 で導入):
void bar(int i) in { assert(i >= 42); } do { /* ママ、bodyはないよ! */ }
根拠: body キーワードは、この単一の目的のためだけに使用されていた。
D文法は文脈にとらわれないことを目指しているため、この一般的な単語は予約されていた、
そのため、他の言語(たとえばjavascript)とのインターフェイスでトラブルが頻発した。
(例:javascript)やコードの自動生成と連動させる際に、頻繁にトラブルが発生した。
Copyright © 1999-2024 by the D Language Foundation
DEEPL APIにより翻訳、ところどころ修正。
このページの最新版(英語)
このページの原文(英語)
翻訳時のdmdのバージョン: 2.108.0
ドキュメントのdmdのバージョン: 2.109.1
翻訳日付 :
HTML生成日時:
編集者: dokutoku