语法错误,意外的 tIDENTIFIER,需要 ')' Ruby
Syntax error, unexpected tIDENTIFIER, expecting ')' Ruby
当 运行 一个接受专有名词字符串和 returns 正确大写的字符串的简单方法时,我收到以下错误。
def format_name(str)
parts = str.split
arr = []
parts.map do |part|
if part[0].upcase
else part[1..-1].downcase
arr << part
end
end
return arr.join(" ")
end
测试用例:
放 format_name("chase WILSON") # => "Chase Wilson"
放 format_name("brian CrAwFoRd scoTT") # => "Brian Crawford Scott"
上述代码 return 的唯一可能是空白输出是因为您的 arr
是 nil
或 blank
。你的 arr
是空白的(是的,在你的情况下它是空白的)是因为这行代码:
if part[0].upcase
其中语句总是 return true
,因为每次迭代都会检查 part
字符串的第一个元素是否可以是 upcase
d 或不是,这是 true
.
因此,你的 else
块永远不会被执行,即使它被执行,这也会 returned 与输入相同的字符串,因为你只是把普通的 part
进入数组 arr
而不进行任何格式化。
有一些方法可以让上面的代码正常工作。我会放两个案例:
# one where your map method could work
def format_name(str)
parts = str.split
arr = []
arr = parts.map do |part|
part.capitalize
end
return arr.join(" ")
end
# one where your loop code logic works
def format_name(str)
parts = str.split
arr = []
parts.map do |part|
arr << "#{part[0].upcase}#{part[1..-1].downcase}"
end
return arr.join(" ")
end
还有许多其他方法可以实现这一点。如果我只使用普通 ruby:
,我也会放我喜欢的那个
def format_name(str)
str.split(' ').map(&:capitalize)
end
您还可以阅读更多有关 Open 类 概念的信息,以将其放入 ruby
的 String
class
此外,如果您使用 rails
,请检查 camelize
方法。
当 运行 一个接受专有名词字符串和 returns 正确大写的字符串的简单方法时,我收到以下错误。
def format_name(str)
parts = str.split
arr = []
parts.map do |part|
if part[0].upcase
else part[1..-1].downcase
arr << part
end
end
return arr.join(" ")
end
测试用例: 放 format_name("chase WILSON") # => "Chase Wilson" 放 format_name("brian CrAwFoRd scoTT") # => "Brian Crawford Scott"
上述代码 return 的唯一可能是空白输出是因为您的 arr
是 nil
或 blank
。你的 arr
是空白的(是的,在你的情况下它是空白的)是因为这行代码:
if part[0].upcase
其中语句总是 return true
,因为每次迭代都会检查 part
字符串的第一个元素是否可以是 upcase
d 或不是,这是 true
.
因此,你的 else
块永远不会被执行,即使它被执行,这也会 returned 与输入相同的字符串,因为你只是把普通的 part
进入数组 arr
而不进行任何格式化。
有一些方法可以让上面的代码正常工作。我会放两个案例:
# one where your map method could work
def format_name(str)
parts = str.split
arr = []
arr = parts.map do |part|
part.capitalize
end
return arr.join(" ")
end
# one where your loop code logic works
def format_name(str)
parts = str.split
arr = []
parts.map do |part|
arr << "#{part[0].upcase}#{part[1..-1].downcase}"
end
return arr.join(" ")
end
还有许多其他方法可以实现这一点。如果我只使用普通 ruby:
,我也会放我喜欢的那个def format_name(str)
str.split(' ').map(&:capitalize)
end
您还可以阅读更多有关 Open 类 概念的信息,以将其放入 ruby
String
class
此外,如果您使用 rails
,请检查 camelize
方法。