Crystal 有像 Ruby 一样的属性访问器方法吗?

Does Crystal have attribute accessor methods like in Ruby?

提问人:Jacob M. Barnard 提问时间:5/11/2023 更新时间:5/11/2023 访问量:145

问:

Crystal 编程语言是否具有与 Ruby 的属性访问器方法等效的方法?更具体地说,Crystal 是否等同于以下内容?

  • attr_accessor
  • attr_reader
  • attr_writer

?

Ruby 方法 属性 访问器 crystal-lang

评论

2赞 engineersmnky 5/11/2023
你的意思是 Object#getter、Object#setter 和 Object#property。当然它在文档

答:

9赞 Andre Wildberg 5/11/2023 #1

是的,它们被定义为宏。

基本上:

红宝石 晶体
attr_accessor 财产
attr_reader 吸气剂
attr_writer 二传手

class Person
  property name
end

等于

class Person
  def name=(@name)
  end

  def name
    @name
  end
end

有关更多详细信息,请参阅参考

评论

0赞 Rajagopalan 5/11/2023
我真诚地希望您目前正在使用 Crystal。我有一个简单的问题:现在可以在 Windows 操作系统上运行 Crystal 吗?上次我检查时,这不受支持。
2赞 Andre Wildberg 5/11/2023
@Rajagopalan我正在使用 Crystal,并且可以在 Windows 上使用它,但不幸的是,我可能无法很好地判断它到底有多有趣(dll 支持等),因为我自己不经常使用 Windows。如果您使用 WSL,它始终可以几乎全部使用,它可能符合或不符合适当的“Windows”条件。长话短说,它还没有一流的支持,但它已经到达那里,ppl 正在努力实现这一目标。引用:“Windows 的所有主要平台功能都已完成!在这里阅读:github.com/crystal-lang/crystal/issues/5430
1赞 Jacob M. Barnard 5/12/2023
谢谢@Andre_Wildberg。我应该知道 Crystal 会让事情变得如此简单。