2012-05-12 4 views
1

falseからtrueに移動でき、falseに戻せないデータ構造(read:boolean)の名前はありますか?そのようにカプセル化されたものを想像:真にしか反転できないブール

private var _value = false 
def value = _value 
def turnOnValue() = value = true 

と好奇心のうち、ネイティブでサポートするすべてのプラットフォームはありますか。これは誰かが前に出てきたはずのもののようです...

答えて

3

変数の一時的なプロパティについて説明しています。そのようなデータ構造ではなく、データ型は単純なブール値ですが、時間的に一種の「ラッチ」として、それが面白い方法で使用されています。

ブール型データ型のこの種のラッチプロパティは、linearly typed booleanの例になります。線形型、およびその他の種類の変数は、変数の一時的なプロパティを強制するために使用されます。それらは一度しか使用できません。共有することはできません。

コンパイル時に、アクションが発生した(初期化など)、またはオブジェクトが共有されていないことをコンパイル時に証明するのに便利です。したがって、これらはシステムプログラミングで最も一般的です。低レベルのプロパティの証明がソフトウェア設計を修正する鍵です。

+0

ウィキペディアの投稿を正しく読んでいると、線形に型付けされたブール値を一度しか読み取ることができません - OPが要求しているものには役に立たないようです。 –

+0

多くの異なる「リニア」タイプのシステムとプロパティがあります。これは、その1つの例です。 –

0

あなたはTie Variablesを持っており、あなたはスカラー値を構築してこの種の "タイプ"を作ることができます。しかし、ネイティブに...おそらくSmalltalkでは、このようなもの、つまりPrologを構築することができますが、わかりません。

0

独自のデータ型を作る

public final class CustomBoolean { 
    private boolean value; 
    public void setValue(boolean value){ 
     // Bitwise OR 
     this.value |= value; 
    } 

    public boolean getValue(){ 
     return value; 
    } 
} 

例::

public static void main (String[] args) 
{ 
     CustomBoolean foo = new CustomBoolean(); 

     foo.setValue(false); 
     System.out.println(foo.getValue()); 

     foo.setValue(true); 
     System.out.println(foo.getValue()); 

     foo.setValue(false); 
     System.out.println(foo.getValue()); 
} 

出力)これは、あなたがのgetValueを(呼び出す必要があります意味

false 
true 
true 

::だろう明示的なブール演算を行う前に つまり

if(foo.getValue() && 1 == 1) 

この例はJavaで書かれています。

+0

私は名前を探していました。 –

+0

@RichardPiankaああ大丈夫。それは...フリップフロップ...フロップなしで?私はちょうどあなたの定義を見た。しかし、(a && b)turnOnValue()ではなく、setValue(a && b)のように一般的に設定できるので、 – AlanFoster

関連する問題