具有单独获取/设置宣传的语言

时间:2015-01-05 02:17:18

标签: programming-languages

我一直在撰写个人项目,并且不断遇到字段需要公开阅读但不应公开写入的情况。据我所知,接受的良好做法"在这些情况下,就是让这个领域变得私密,写一个香草的吸气剂,让它成为一切。

似乎你可以通过允许程序员为读/写访问设置单独的宣传级别来节省getter的开销(包括执行和开发时间),就像UNIX文件权限一样。

是否有可能的语言?

2 个答案:

答案 0 :(得分:1)

UNIX文件系统权限与类实例变量可见性(公共,受保护,私有,全局等)之间存在一些差异。前者是ACL,它定义了附加到对象的权限列表,后者defines how much the rest of the system can access the variable

无论如何,在那之后......

Ruby通过定义:

来处理这个问题

所以,如果我有一个Blog类看起来像:

class Blog
  attr_accessor :title
end

attr_accessor :title被翻译成'getter'和'setter',如下所示:

def title=(value)
  @title = value
end

def title
  @title
end

相反,如果我在同一个班级中定义attr_reader :title,它会被翻译成'getter':

def title
  @title
end

attr_writer :title被翻译成'setter'时:

def title=(value)
  @title = value
end

答案 1 :(得分:1)

在C#中,您可以使用auto-implemented property

public int Foo { get; private set; }

这节省了编写单独的getter方法的大部分复杂性。并且这种getter的执行时间开销应该是none(由于内联)或非常小。