【问题标题】:def function/method in GrailsGrails 中的 def 函数/方法
【发布时间】:2017-01-06 01:14:19
【问题描述】:

一个好问题,谁能解释一下两者的区别

def login() { 

     //some codes here 

}

def login = {

    //some codes here

}

在 Grails 中。谢谢!

【问题讨论】:

  • 抱歉,我只是 groovy 和 grails 编程的新手。
  • 除非你有一些非常具体的用例,否则你很可能希望坚持使用方法而不是闭包,grails 不再推荐闭包操作,甚至可能在未来的版本中被删除。
  • 拜托,@Mystique,如果 Joshua Moore 给出了令人满意的答案,请成为 Mensch 并确认。
  • 很抱歉 @loteq 没有​​立即承认 Joshua Moore 的回答。谢谢

标签: grails groovy controller


【解决方案1】:

区别在于:def login() { .. } 是一个方法,而def login = { ... } 是一个闭包。旧版本的 Grails 控制器使用闭包来执行操作,而更高版本使用方法(您可能会看到这种差异)。

如果您想了解更多信息,请阅读 Groovy 闭包。

【讨论】:

  • 和方法首选作为闭包的操作。
  • 这取决于您要解决的问题。闭包不同于方法,因此可以不同地使用。除非你有理由使用闭包,否则你应该只使用一个方法。这是我对你的个人建议。
  • 是的,这就是我要说的,在大多数情况下,方法比闭包更受欢迎,这就是为什么 grails 团队决定使用方法
  • 这不仅仅是偏好 /why/ 控制器被移动到方法而不是闭包,但这并不真正相关。希望答案能解决您的问题(如果是,您可能希望将其标记为已接受)。
  • 感谢@Joshua Moore,它有很大帮助。
猜你喜欢
  • 2021-10-17
  • 2020-12-19
  • 2017-09-19
  • 2015-06-23
  • 1970-01-01
  • 2021-12-31
  • 1970-01-01
  • 1970-01-01
  • 2014-03-12
相关资源
最近更新 更多