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

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

10
python dict.update()がオブジェクトを返さないのはなぜですか?
私はやろうとしている: award_dict = { "url" : "http://facebook.com", "imageurl" : "http://farm4.static.flickr.com/3431/3939267074_feb9eb19b1_o.png", "count" : 1, } def award(name, count, points, desc_string, my_size, parent) : if my_size > count : a = { "name" : name, "description" : desc_string % count, "points" : points, "parent_award" : parent, } a.update(award_dict) return self.add_award(a, siteAlias, alias).award …

3
C#プロパティの省略表現に相当するVB.NET?
C#に相当するVB.NETはありますか? public string FirstName { get; set; } 私はあなたができることを知っています Public Property name() As String Get Return _name.ToString End Get Set(ByVal value As String) _name = value End Set End Property しかし、私はVisual Basicの省略形で答えをググるようには見えません。

12
JavaScriptに「null」値があるのはなぜですか?
JavaScriptには、基本的に「私は存在しない」と言う2つの値があります- undefinedとnull。 プログラマが何も割り当てていないundefinedプロパティはになりますが、プロパティがになるためにはnull、null明示的に割り当てる必要があります。 は、プリミティブな値とオブジェクトであるnullため、必要があると思っていました。それは、もし降伏しても、そうではありません:実際には、両方ともプリミティブ値です-つまり、どちらでもありませんundefinednulltypeof null'object'undefinednull両方が空のオブジェクト(1はコンストラクタでPROCLAIM失敗にエラーをスローすることがある)に変換されるように、コンストラクタ関数から返すことができます。 また、どちらもfalseブールコンテキストで評価されます。私が考えることができる唯一の本当の違いは、一方がに評価されNaN、もう一方が0、数値コンテキストです。 それでは、なぜ両方がundefinedありnull、これがnull、プロパティが設定されているかどうかを調べようとするときに誤ってチェックしているプログラマを混乱させるだけなのでしょうか。 私が知りたいのは、誰かがそれを使用しnullて表現することができなかった使用する必要がある合理的な例があるかどうかですundefined代わりに。 したがって、一般的なコンセンサスは、undefined「そのような財産は存在しない」ことを意味するようです。null手段は「プロパティが存在していますが、何も値を保持していません」。 JavaScriptの実装が実際にこの動作を強制する場合は、私はそれに耐えることができますundefinedが、完全に有効なプリミティブ値なので、このコントラクトを破るために既存のプロパティに簡単に割り当てることができます。したがって、プロパティが存在するかどうかを確認する場合は、とにかくin演算子を使用する必要がありhasOwnProperty()ます。もう一度言いますと、undefinedとnullですか? 使用undefinedしなくなったが、使用したくないプロパティの値を設定解除したい場合は、実際に使用します。deleteます。null代わりに使用する必要がありますか?

30
HTMLの隠された機能
ロックされています。質問はトピックから外れていますが、歴史的に重要であるため、この質問とその回答はロックされています。現在、新しい回答や相互作用を受け入れていません。 最も広く使用されている言語(少なくともマークアップ言語として)であるHTMLは、正当な評価を得ていません。 何年も前から存在していることを考えると、FORM / INPUTコントロールのようなものは、新しいコントロールが追加されておらず、同じままです。 だから、少なくとも既存の機能から、あまり知られていないが非常に便利な機能を知っていますか? もちろん、この質問は次のとおりです。 JavaScriptの 非表示機能CSSの 非表示機能C#の 非表示機能VB.NETの 非表示機能Javaの 非表示機能ASPの 非表示機能ASP.NETの 非表示機能Pythonの 非表示機能TextPadの 非表示機能Eclipseの非表示機能 HTML 5.0はワーキングドラフトであるため、機能については言及しないでください。 回答ごとに1つの機能を指定してください。




18
Scalaコードがより単純に見える/行が少ないScalaおよびJavaコードのサンプル?
ScalaコードがJavaで書かれたコードよりもシンプルで簡潔であることを示す、ScalaおよびJavaコードのコードサンプルがいくつか必要です(私はそれらについても興味があります)(もちろん、両方のサンプルで同じ問題を解決できるはずです)。 「これはScalaの抽象ファクトリです。Javaではもっと面倒に見えます」のようなコメント付きのScalaサンプルしかない場合は、これも許容されます。 ありがとう! 私は受け入れられたすべての中で最も好きであり、この答え

4
論理演算子の記述バージョン
これは私が今まで見た中で唯一の場所andでorありnot、C ++では実際の演算子としてリストされています。NetBeansでテストプログラムを作成したときに、構文エラーがあるかのように赤い下線が引かれ、Webサイトが間違っていることがわかりましたが、NetBeansはコンパイルと実行が正常に行われたため、間違っています。 私は!好かれnotているように見えますが、and&& の読みやすさはor文法上の兄弟よりも優れているようです。なぜこれらのバージョンの論理演算子が存在し、なぜだれもそれを使用していないように見えるのですか?これは本当に有効なC ++ですか、それとも言語に含まれていたCとの互換性ですか?

3
見た目がとても似ているのに、なぜeigenclassがself.classと同等ではないのですか?
どこかでメモを逃してしまったので、説明していただければ幸いです。 オブジェクトの固有クラスが異なるのはなぜself.classですか? class Foo def initialize(symbol) eigenclass = class << self self end eigenclass.class_eval do attr_accessor symbol end end end 固有クラスをclass.selfと同等にする私の一連のロジックはかなり単純です。 class << selfインスタンスメソッドではなく、クラスメソッドを宣言する方法です。へのショートカットdef Foo.barです。 したがって、クラスオブジェクトへの参照内では、返されるのselfはと同じである必要がありますself.class。これは、クラスのメソッド/属性の定義ににclass << self設定さselfれるFoo.classためです。 私はただ混乱していますか?それとも、これはRubyメタプログラミングの卑劣なトリックですか?

9
C#がインデックス付きプロパティを実装しないのはなぜですか?
私は知っています、私は知っています...この種の質問に対するエリック・リペットの答えは、通常、「設計、実装、テスト、および文書化のコストに見合う価値がなかったため」のようなものです。 しかし、それでも、もっと良い説明が欲しいのですが...新しいC#4機能についてのこのブログ投稿を読んでいて、COM相互運用に関するセクションで次の部分が私の注意を引きました: ちなみに、このコードはもう1つの新機能を使用しています。インデックス付きプロパティ(範囲の後の角括弧を詳しく見てください)。ただし、この機能はCOM相互運用でのみ使用できます。C#4.0で独自のインデックス付きプロパティを作成することはできません。 いいけどなんで ?C#でインデックス付きプロパティを作成できないことはすでに知っていて後悔していましたが、この文でもう一度考えさせられました。私はそれを実装するいくつかの正当な理由を見ることができます: CLRは、それが(例えば、サポートしPropertyInfo.GetValueているindexことが、我々はC#で、それを利用することはできません残念ですので、パラメータ) 記事に示されているように、COM相互運用でサポートされています(動的ディスパッチを使用) VB.NETに実装されています インデクサーを作成すること、つまりオブジェクト自体にインデックスを適用することはすでに可能です。そのため、同じ構文を維持thisし、プロパティ名に置き換えるだけで、アイデアをプロパティに拡張することはおそらく大したことではありません。 それはそのようなことを書くことを可能にするでしょう: public class Foo { private string[] _values = new string[3]; public string Values[int index] { get { return _values[index]; } set { _values[index] = value; } } } 現在私が知っている唯一の回避策はValuesCollection、インデクサーを実装する内部クラス(たとえば)を作成し、Valuesその内部クラスのインスタンスを返すようにプロパティを変更することです。 これは非常に簡単ですが、面倒です...おそらくコンパイラが私たちのためにそれを行うことができます!オプションは、インデクサーを実装する内部クラスを生成し、パブリックジェネリックインターフェイスを介して公開することです。 // interface defined in the namespace System public interface IIndexer<TIndex, …

30
最高のJavaScript構文糖衣
ここにいくつかの宝石があります: リテラル: var obj = {}; // Object literal, equivalent to var obj = new Object(); var arr = []; // Array literal, equivalent to var arr = new Array(); var regex = /something/; // Regular expression literal, equivalent to var regex = new RegExp('something'); デフォルト: arg = arg || …

2
合計型-Haskellで `show(Int | Double)`が `(show Int)|と異なる理由 (ダブルを表示) `
なぜこれらは同等ではないのですか? show $ if someCondition then someInt else some double そして if someCondition then show someInt else show someDouble if ... else最初の例の部分を単独で式に分離した場合Int | Double、TypeScriptで簡単に実行できるようなTypeのような匿名合計型でその型を表すことができないことを理解しています(TypeScriptについて言及しているため、 langaugeは頻繁に使用し、Sum型をサポートしているため、Eitherデータを使用する必要があるため、それに基づいてを呼び出しますshow。 ここで示した例はささいなことですが、私にとっては、someCondition「何かを表示し、何かが依存する」と考える方が理にかなっています。コードの重複が少ない場合(ここでは、ショーが2回繰り返されますが、長い関数のアプリケーションでif ... elseある可能性があり、2つ以上の分岐を検討する必要がある場合もあります) 私の考えでは、合計型(ここではInt | Double)を構成する各型がshow関数のパラメーターとして使用できるかどうかをコンパイラーがチェックし、型が正しいかどうかを判断するのは簡単です。さらに良いのは、show関数がstringパラメーターのタイプに関係なく常に返されるため、コンパイラーがすべての可能な「ブランチ」(したがってすべての可能なタイプ)を運ぶ必要がないことです。 そのような機能が存在しないのは選択によるものですか?それとも、実装するのは難しいと思いますか?

2
C ++機能の影響を受けている、またはC ++機能から派生しているC機能はどれですか。[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 5か月前に閉鎖。 元々Cの一部ではなかったが、C ++で/のために発明され、その利点のために後でCに採用された実際のC標準の機能は何ですか? 顕著な例の1つは、1行コメントです//。これは、最初はC ++から来たもので、後にCによって採用されました。 C ++の開発から明示的または暗黙的にもたらされた実際のC標準のその他の機能を知っていますか? 情報:もちろん、C ++はCから派生していることは知っていますが、派生したC ++の開発から採用された機能について考えていました。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.