【问题标题】:Named arguments shortcut for CrystalCrystal 的命名参数快捷方式
【发布时间】:2019-12-19 22:33:17
【问题描述】:

在下面的代码中,命名参数必须重复,有没有办法缩短表达式?

struct Figure
  getter id :      String
  getter hash :    String
  getter title :   String

  def initialize(@id, @hash, @title)
  end
end

id = "Figure 1", hash = "123", title = "Some figure"

Figure.new id: id, hash: hash, title: title

类似于下面的代码,但保持命名不是位置?

Figure.new id, hash, title

或许

Figure.new{ id, hash, title }

【问题讨论】:

    标签: crystal-lang


    【解决方案1】:

    我不知道有什么方法可以缩短它。

    我认为当您将局部变量的名称与方法参数的名称联系起来时,这将是一种危险的语义,因为在一个地方更改内容会在另一个地方产生不可预见的影响。

    对于大多数用例来说,使用位置参数应该没问题。如果你想跳过一些参数,你可以结合位置参数和命名参数。

    【讨论】:

      猜你喜欢
      • 2011-06-20
      • 2012-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      相关资源
      最近更新 更多