修復(fù)Ruby“NameError:undefined local variable”錯(cuò)誤

在Ruby中,您不需要聲明變量,但您必須在引用變量之前為它們分配一些內(nèi)冷健康知識(shí)容。

如果您'重新引用尚未存在的本地變量,則可能會(huì)看到兩個(gè)錯(cuò)誤之一。

紅寶石名稱錯(cuò)誤消息

 Name錯(cuò)誤:未定義的局部變量或方法'a'for#

 Name錯(cuò)誤:未定義的局部變量或方法'a'用于主要:對(duì)象

注意:可能有各種標(biāo)識(shí)符代替上面的&##39;a'。

這是一個(gè)例子,代碼將生成Ruby"NameError"消息,因?yàn)樽兞?strong>ahave'尚未分配給任何內(nèi)容:

放置

如何修復(fù)錯(cuò)誤

變量必須在使用之前分配。因此,使用上面的示例,修復(fù)錯(cuò)誤就像這樣做一樣簡(jiǎn)單:

a=10把一個(gè)

為什么你'重新得到這個(gè)錯(cuò)誤

顯而易見(jiàn)的答案是你'重新指的是一個(gè)尚未創(chuàng)建的變量。這通常是由于拼寫錯(cuò)誤,但可能在重構(gòu)代碼和重命名變量時(shí)發(fā)生。

如果要輸入字符串,您也可能會(huì)看到"Name錯(cuò)誤:未定義的本地變量"Ruby錯(cuò)誤。字符串存在于引號(hào)之間時(shí),可以理解它們。如果您沒(méi)有't使用引號(hào),Ruby會(huì)認(rèn)為您打算引用一個(gè)方法或變量(不存在't存在)并引發(fā)錯(cuò)誤。

所以,看看你的代碼,看看這個(gè)變量應(yīng)該指什么,并修復(fù)它。您也可能想在同一方法中搜索相同變量名稱的其他實(shí)例-如果它在一個(gè)地方錯(cuò)誤,則在其他地方可能錯(cuò)誤。