Programming languages 哪些语言具有可以分配getter和setter的属性?

Programming languages 哪些语言具有可以分配getter和setter的属性?,programming-languages,properties,Programming Languages,Properties,Java没有。这只是惯例 德尔福有。 我相信C是的 其他语言有哪些功能 编辑: 我应该举个例子: class Foo { public string Bar { get; private set; } public string Bargain { get { return this._Bargain; } set { this._Bargain = value; } } private string _Bargain; }

Java没有。这只是惯例

德尔福有。 我相信C是的

其他语言有哪些功能

编辑: 我应该举个例子:

class Foo
{
    public string Bar { get; private set; }
    public string Bargain
    {
        get { return this._Bargain; }
        set { this._Bargain = value; }
    }
    private string _Bargain;
}
德尔菲:小心,已经有一段时间了,我可能弄错了

 type
   TSomething = class
   fEmployeeNum: String;
    property employeeNum: String read fEmployeeNum write setEmployeeNum;
   end;

 procedure TSomething.setEmployeeNum(var val: String);
 begin
   fEmployeeNum := val;
 end;

VB.NET通过属性关键字进行操作。

VB.NET通过属性关键字进行操作。

C++不在标准之下,但您可以通过模板创建容量。

C++不在标准之下,但您可以通过模板创建容量。

C只是提供一个示例:

class Foo
{
    public string Bar { get; private set; }
    public string Bargain
    {
        get { return this._Bargain; }
        set { this._Bargain = value; }
    }
    private string _Bargain;
}

C只是提供了一个例子:

class Foo
{
    public string Bar { get; private set; }
    public string Bargain
    {
        get { return this._Bargain; }
        set { this._Bargain = value; }
    }
    private string _Bargain;
}
Ruby通过attr_reader、attr_writer和attr_accessor进行读/写:

class SomeClass
  attr_reader :foo #read-only
  attr_writer :bar #write-only
  attr_accessor :baz #read and write

  ...
end
Ruby通过attr_reader、attr_writer和attr_accessor进行读/写:

class SomeClass
  attr_reader :foo #read-only
  attr_writer :bar #write-only
  attr_accessor :baz #read and write

  ...
end
Python确实如此

class SomeClass( object ):
def f_get( self ):
    return self.value
fprop = property( f_get )
setter的代码与此类似。

Python也一样

class SomeClass( object ):
def f_get( self ):
    return self.value
fprop = property( f_get )
setter的代码与此类似。

您可以使用synthesis关键字懒惰。

您可以使用synthesis关键字懒惰。

在Perl 6中

use v6;

sub foo() is rw {
    state $foo;
    return new Proxy:
        FETCH => method { return $foo },
        STORE => method($to) { $foo = $to };
}

foo = "Hello, world!";
say foo;
…至少在理论上。似乎无法与Rakudo r38250一起使用。

在Perl 6中

use v6;

sub foo() is rw {
    state $foo;
    return new Proxy:
        FETCH => method { return $foo },
        STORE => method($to) { $foo = $to };
}

foo = "Hello, world!";
say foo;


…至少在理论上。似乎对Rakudo r38250不起作用。

我认为这应该是一个社区wiki问题,因为没有最好的答案。C确实支持传统的getter和setter,并且它还有一个针对懒惰编码者的简短形式:即:public string myString{get;set;}@s。很好!我时不时会忘记这一点。我认为这应该是一个社区维基问题,因为没有最好的答案。C确实支持传统的getter和setter,而且它还有一个针对懒惰编码者的简短形式:即:public string myString{get;set;}@s。很好!我时常忘记这一点。你能提供一个简单的例子吗?X类;属性读取器:foo,def initializefo@foo=foo;终止终止新的'ape'。foo=>'ape'谢谢rampion,但我希望能有一个像这里其他人一样的格式很好的。无论如何,把它作为你自己的答案贴出来,我会投赞成票。这整件事无论如何都应该是CW,但我会添加一个例子。你能提供一个简单的例子吗?X类;属性读取器:foo,def initializefo@foo=foo;终止终止新的'ape'。foo=>'ape'谢谢rampion,但我希望能有一个像这里其他人一样的格式很好的。无论如何,把它作为你自己的答案贴出来,我会投赞成票。这整件事无论如何都应该是CW,但我会加上一个例子。+1给出了常规方式和自动特性的例子。+1给出了常规方式和自动特性的例子。实际上,这就是问题的灵感所在。事实上,这就是这个问题的灵感所在。