Karl011 24 – Fd. Medlem
Postad: 7 maj 2019 18:12

Första numret i arrayen

Jag programmerar i ruby. Jag vill att min output skall vara det första numret i arrayen, någon som vet vart felet ligger? Jag har kodat följande:

def first_of(array)

number = array[1]

end

return number

result = first_of([1,2,3,4])

puts result

Laguna Online 30704
Postad: 7 maj 2019 18:23

Vad blir det? Blir det 2?

Karl011 24 – Fd. Medlem
Postad: 7 maj 2019 18:24

Nej, det blir ett felmeddelande, det står: 

Traceback (most recent call last):
first_of.rb:7:in `<main>': undefined local variable or method `number' for main:Object (NameError)

Karl011 24 – Fd. Medlem
Postad: 7 maj 2019 18:31

Men det är sant det du skriver, det borde bli 2 eftersom jag har skrivit array[1] & inte array[0], jag ändrar det nu. Men jag får fortfarande samma felmeddelande.

annlu 230
Postad: 7 maj 2019 23:29 Redigerad: 7 maj 2019 23:49

Hej!

Din funktion first_of deklarerar den lokala variabeln number och måste returnera detta värde. Du har fått det utanför funktionen (i din main som inte känner till den variabeln: "undefined local variable `number' for main") 

def first_of(array)

    number = array[1]
end

return number   # Det här borde stå inne i funktionen first_of

result = first_of([1,2,3,4])
puts result

Karl011 24 – Fd. Medlem
Postad: 8 maj 2019 09:17
annlu skrev:

Hej!

Din funktion first_of deklarerar den lokala variabeln number och måste returnera detta värde. Du har fått det utanför funktionen (i din main som inte känner till den variabeln: "undefined local variable `number' for main") 

def first_of(array)

    number = array[1]
end

return number   # Det här borde stå inne i funktionen first_of

result = first_of([1,2,3,4])
puts result

Då står det:

Traceback (most recent call last):
1: from first_of.rb:9:in `<main>'
first_of.rb:1:in `first_of': wrong number of arguments (given 0, expected 1) (ArgumentError)

annlu 230
Postad: 8 maj 2019 09:22

Hur ser din kod ut nu? Felmeddelandet säger att din funktion first_of förväntar sig ett argument men att du anropar den utan. 

Svara
Close