Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby方法列表:";意外的kDEF,应为$end“;_Ruby - Fatal编程技术网

Ruby方法列表:";意外的kDEF,应为$end“;

Ruby方法列表:";意外的kDEF,应为$end“;,ruby,Ruby,我不得不问这个问题,我觉得很傻,但这让我难堪了太久。尝试运行以下命令时,我发现 finance.rb:1:语法错误,意外的kDEF,应为$end def get_sign(input) return "+" if input.include? "+" return "-" if input.include? "-" end def get_account_name(input) if input.split[0] == "new" return input.split.reject{

我不得不问这个问题,我觉得很傻,但这让我难堪了太久。尝试运行以下命令时,我发现

finance.rb:1:语法错误,意外的kDEF,应为$end

def get_sign(input)
 return "+" if input.include? "+"
 return "-" if input.include? "-"
end

def get_account_name(input)
 if input.split[0] == "new"
  return input.split.reject{|x| x == "new" or x == "account"}[0]
 else
  return input.split[0]
 end
end

如果我将它们包装在一个类中,它只希望
如果我将这个问题中的内容复制/粘贴到一个新文件中,我不会得到这个错误。如果您这样做(将此网页复制/粘贴到新文件并保存),您是否仍会收到错误?如果没有,可能您的文件中有一些垃圾空白


添加为答案,因为其他用户可能会发现此问题具有类似问题,而不是通读所有注释以找到解决方案。

是的,就是这样。方法甚至没有被调用。在Ruby中使用
return
是不常见的,而且很少需要;您的第一个方法可以重写为:
def get\u sign(input)\nif input.include?“+”\n“+”\nelsif input.include?“-”\n“-”\nend\nend
,您只需从第二种方法中删除
return
关键字,即可获得更好更快的代码。您的代码在Linux上使用MRI 1.8.7为我编译。你是怎么运作的?如果您只是键入
/finance.rb
,您需要一个shebang作为第一行(例如“#!/usr/bin/ruby1.8”)。如果我将此问题中的内容复制/粘贴到新文件中,则不会出现此错误。如果您这样做(将此网页复制/粘贴到新文件并保存),您是否仍会收到错误?如果没有,也许你的文件中有一些垃圾空白?啊。重新输入一个新文档使它工作起来,一定是某个愚蠢的隐形角色把它搞乱了。