新手问题 此处的return作用?

xiaoronglv · 发布于 2012年07月09日 · 最后由 xiaoronglv 回复于 2012年07月13日 · 1890 次阅读
1638

菜鸟一日一问,《web 敏捷开发 第三版》 115页

def password = (pwd)
  @password = pwd
  return if pwd.blank?
  create_new_salt
  self.hashed_password = User.encrypted_password(self.password, self.salt)
end

return是返回方法的值, 此处的return是啥意思啊,有没有区别不大吧?

😄

共收到 6 条回复
77

如果 pwd 是 blank,直接 return nil ,后面的就不再执行了

622

这里的 return 和 return nil是一样的

2396

def password = (pwd) #方法定义 @password = pwd #参数赋值给实例变量 return if pwd.blank? #如果密码为空,那么返回return,下面的代码不会执行,会退出方法体 create_new_salt self.hashed_password = User.encrypted_password(self.password, self.salt) end

这里return,不是关注点,关注点是blank? empty? nil? 的区别才是关注点

594

请求楼主 格式化/排版一下自己的代码,我们看着好累啊

594

我想 楼主 的主要问题是, 对return 语法的理解 不正确。 return 的作用如下 1 为函数提供返回值 2 终止函数后续代码的执行

password =函数 是一个 属性的赋值函数, 正常情况下,这个函数不需要任何返回值。 这段代码中的return的主要目的, 就是 终止函数后续代码的执行

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册