タグ付けされた質問 「language-features」

言語機能は、バインディングルール、字句デザイン、型システムのファセットなど、プログラミング言語の異なる側面です。

25
C#で静的メソッドがインターフェイスを実装できないのはなぜですか?
なぜC#はこのように設計されたのですか? 私が理解しているように、インターフェースは動作を説明するだけであり、特定の動作が実装されているインターフェースを実装するクラスの契約上の義務を説明する目的を果たします。 クラスがその振る舞いを共有メソッドに実装したいのであれば、なぜそうすべきではないのでしょうか? これが私が考えていることの例です: // These items will be displayed in a list on the screen. public interface IListItem { string ScreenName(); ... } public class Animal: IListItem { // All animals will be called "Animal". public static string ScreenName() { return "Animal"; } .... } public class Person: IListItem …

21
クラスで 'static'キーワードは何をしますか?
具体的には、私はこのコードを試していました: package hello; public class Hello { Clock clock = new Clock(); public static void main(String args[]) { clock.sayTime(); } } しかし、それはエラーを与えました 静的メソッドmainの非静的フィールドにアクセスできません だから私はの宣言をこれに変更しましたclock: static Clock clock = new Clock(); そしてそれはうまくいった。宣言の前にそのキーワードを置くとはどういう意味ですか?そのオブジェクトに対して何を実行できるかに関して、正確に何を行うか、または制限するか?


10
Pythonの「with」ステートメントはどのように設計されていますか?
with今日、初めてPython ステートメントに出会いました。Pythonを数か月間軽く使用していて、その存在すら知りませんでした!そのややあいまいなステータスを考えると、私は尋ねる価値があると思いました: Python withステートメントは何のために設計されたものですか? あなたはそれを何に使っているの? 私が知っておく必要がある落とし穴、またはその使用に関連する一般的なアンチパターンはありますか?それはよりよい使用である任意の例try..finallyよりもwith? なぜもっと広く使われないのですか? どの標準ライブラリクラスと互換性がありますか?

30
JavaScriptの「with」ステートメントの正当な用途はありますか?
with声明に関する私の回答に対するアラン・ストームのコメントは私に考えさせられました。私はこの特定の言語機能を使用する理由をめったに見つけず、それがどのように問題を引き起こす可能性があるかについてあまり考えたことはありませんでした。さて、私はwithその落とし穴を避けながら、私がをどのように効果的に使用できるかについて興味があります。 このwithステートメントはどこで役に立ちましたか?

17
同等のJavaScriptハッシュマップ
この回答の更新3で明らかにされているように、この表記は次のとおりです。 var hash = {}; hash[X] 実際にはオブジェクトをハッシュしませんX。実際には、単にX文字列に変換され(.toString()それがオブジェクトの場合、またはさまざまなプリミティブ型に対する他の組み込み変換によって)、その文字列をハッシュせずに " hash"で検索します。オブジェクトの等価性もチェックされません-2つの異なるオブジェクトが同じ文字列変換を持っている場合、それらは互いに上書きするだけです。 これを考えると、JavaScriptのハッシュマップの効率的な実装はありますか?(たとえば、2番目のGoogleの結果はjavascript hashmap、任意の操作に対してO(n)である実装を生成します。他のさまざまな結果は、同等の文字列表現を持つ異なるオブジェクトが互いに上書きするという事実を無視します。

12
Rでリストを正しく使用する方法
簡単な背景:広く使われている多くの(ほとんど?)現代のプログラミング言語には、少なくとも少数のADT [抽象データ型]が共通してあり、特に、 文字列(文字で構成されるシーケンス) リスト(値の順序付けられたコレクション)、および マップベースのタイプ(キーを値にマップする順序付けされていない配列) Rプログラミング言語では、最初の2つはそれぞれcharacterととして実装されvectorます。 私がRを学び始めたとき、2つのことはほぼ最初から明らかでした:listRで最も重要なデータ型(これはRの親クラスであるためdata.frame)、そして次に、少なくともそれらがどのように機能するか理解できませんでした私のコードでそれらを正しく使用するには十分ではありません。 1つには、Rのlistデータ型はマップADT(dictionaryPython、NSMutableDictionaryObjective C、hashPerlおよびRuby、object literalJavascriptなど)の単純な実装であるように思えました。 たとえば、Pythonの辞書と同じように、キーと値のペアをコンストラクタに渡すことで作成します(Pythonではこれはdictできませんlist)。 x = list("ev1"=10, "ev2"=15, "rv"="Group 1") そして、R辞書の項目には、Python辞書の項目と同じようにアクセスしますx['ev1']。同様に、「キー」または「値」のみを取得できます。 names(x) # fetch just the 'keys' of an R list # [1] "ev1" "ev2" "rv" unlist(x) # fetch just the 'values' of an R list # ev1 ev2 rv # "10" "15" …

5
Javaのインターフェースと@インターフェースの違いは何ですか?
私は90年代後半に大学でJBuilderを使用して以来Javaに触れていなかったので、少し連絡が取れなくなっています。 、私の通常の.Net開発からのペースの変更について。 私はそれがインターフェースと@インターフェースの追加をサポートしていることに気付きました、@インターフェースとは何ですか、そしてそれは通常のインターフェースとどう違うのですか? public interface Test { } 対 public @interface Test { } 少し検索はしましたが、@ interfaceを参照するための有用な情報が見つかりませんでした。

5
「this」キーワードは関数内でどのように機能しますか?
JavaScriptで興味深い状況に遭遇しました。オブジェクトリテラル表記を使用して複数のオブジェクトを定義するメソッドを持つクラスがあります。これらのオブジェクト内では、thisポインターが使用されています。プログラムの動作から、thisポインタはメソッドが呼び出されたクラスを参照しており、リテラルによって作成されているオブジェクトを参照していないと推定しました。 これは私には期待できる方法ですが、これは恣意的です。これは定義された動作ですか?ブラウザ間で安全ですか?それが「仕様がそう言っている」ことを超えている理由である根本的な理由はありますか(たとえば、それはいくつかのより広範な設計決定/哲学の結果ですか)?削減されたコード例: // inside class definition, itself an object literal, we have this function: onRender: function() { this.menuItems = this.menuItems.concat([ { text: 'Group by Module', rptletdiv: this }, { text: 'Group by Status', rptletdiv: this }]); // etc }

13
DateTime.NowとDateTime.UtcNow
2つのプロパティがどのように機能するのかという原則は何なのでしょうか。2つ目は普遍的であり、基本的にタイムゾーンを処理しないことを知っていますが、誰かがそれらがどのように機能し、どのシナリオでどのシナリオを使用する必要があるかを詳細に説明できますか?

6
SQLまたはTSQLチューリングは完全ですか?
これは今日オフィスで思いついた。私はそのようなことをする予定はありませんが、理論的にはSQLでコンパイラを書くことができますか?一見したところ、多くの種類の問題にとって非常に厄介ですが、完全に対処しているように見えます。 それが完全に実現しない場合、それがそうなるには何が必要ですか? 注:SQLでコンパイラーを作成するようなことはしたくありません。ばかげたことであることはわかっているので、その議論を回避できればありがたいです。

17
正しいメソッドを持っているよりもインターフェイスにもっとありますか
だから私がこのインターフェースを持っているとしましょう: public interface IBox { public void setSize(int size); public int getSize(); public int getArea(); //...and so on } そして私はそれを実装するクラスを持っています: public class Rectangle implements IBox { private int size; //Methods here } IBoxインターフェイスを使用したい場合、実際にはそのインスタンスを作成できません。 public static void main(String args[]) { Ibox myBox=new Ibox(); } 正しい?だから私は実際にこれをしなければならないでしょう: public static void main(String args[]) { …


10
プライベートフィールドがインスタンスではなく型に対してプライベートであるのはなぜですか?
C#(および他の多くの言語)では、同じタイプの他のインスタンスのプライベートフィールドにアクセスすることは完全に正当です。例えば: public class Foo { private bool aBool; public void DoBar(Foo anotherFoo) { if (anotherFoo.aBool) ... } } ようにC#の仕様(セクション3.5.1、3.5.2)プライベートフィールドへのアクセスのタイプではなく、インスタンス上で述べています。私はこれについて同僚と話し合っており、(同じインスタンスへのアクセスを制限するのではなく)このように機能する理由を考え出そうとしています。 考えられる最良の引数は、クラスがプライベートフィールドにアクセスして別のインスタンスとの等価性を判断する可能性がある等価性チェックです。他に理由はありますか?それとも、このように機能しなければならない、または何かが完全に不可能であることを絶対に意味するいくつかの黄金の理由?

10
列挙型定義のチルダ(〜)は何ですか?
今でもずっとC#を使用していても、私はまだ知らないことを見つけることができたことにいつも驚いています... 私はこれをインターネットで検索してみましたが、検索で「〜」を使用してもうまくいかず、MSDNでも何も見つかりませんでした(それがないと言っているわけではありません)。 最近、このコードスニペットを見ましたが、チルド(〜)はどういう意味ですか /// <summary> /// Enumerates the ways a customer may purchase goods. /// </summary> [Flags] public enum PurchaseMethod { All = ~0, None = 0, Cash = 1, Check = 2, CreditCard = 4 } 私はそれを見て少し驚いたので、コンパイルしてみましたが、うまくいきました...しかし、それが何を意味するのか、または何をするのかはまだわかりません。何か助け?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.