Crystal 的命名参数快捷方式
Named arguments shortcut for Crystal
在下面的代码中命名参数必须重复,有没有办法缩短表达式?
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 }
我不知道有什么方法可以缩短它。
我认为当您将局部变量的名称与方法参数的名称联系起来时,这将是一种危险的语义,因为在一个地方改变事物会在另一个地方产生不可预见的影响。
对于大多数用例,使用位置参数应该没问题。如果您想跳过一些参数,您可以将位置参数和命名参数结合起来。
在下面的代码中命名参数必须重复,有没有办法缩短表达式?
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 }
我不知道有什么方法可以缩短它。
我认为当您将局部变量的名称与方法参数的名称联系起来时,这将是一种危险的语义,因为在一个地方改变事物会在另一个地方产生不可预见的影响。
对于大多数用例,使用位置参数应该没问题。如果您想跳过一些参数,您可以将位置参数和命名参数结合起来。