V-lang показывает V-панику: ошибка индекса массива вне диапазона для правильной индексации массива после того, как V-паника встречалась один раз - PullRequest
5 голосов
/ 28 июня 2019

Существует новый язык программирования V-lang , созданный Алексом Медведниковым.Я использую V-Lang версии 0.1.11 в настоящее время.Я могу объявить массив в V-lang, как показано ниже:

a := [1,2,3]
// or, mut a := [1,2,3]

Я пытался получить последний элемент этого массива, как:

>>> a := [1,2,3]
>>> println(a[-1])
V panic: array index out of range: -1/3
>>> println(a[a.len -1])
V panic: array index out of range: -1/3

Каждый раз, он показывает:

V паника: индекс массива вне диапазона:

Теперь, сразу после этого, если я попытаюсь получить элементы из массива, то все равно будет отображаться та же ошибка:

>>> println(a[1])  
V panic: array index out of range: -1/3
>>> println(a.len)
V panic: array index out of range: -1/3

Где если бы мы попытались получить элементы из массива до того, как встретили V panic, он бы напечатал то же самое безо всякой ошибки, как свежий экземпляр в терминале:

>>> a := [1,2,3]
>>> println(a.len)
3
>>> println(a[1])
2

Почему V-lang показывает V panic для правильной индексации каждый раз после того, как мы встречаемся с V panic заранее?

1 Ответ

1 голос
/ 07 июля 2019

Это, вероятно, ошибка в V REPL. Вы можете подать вопрос здесь

В отличие от Python, V-lang не имеет этой функции для получения элементов из конца массива с отрицательными индексами

a := [1,2,3]
a[-1] //isn't valid

Официальная документация короткая и точная

mut nums := [1, 2, 3]
println(nums) // "[1, 2, 3]"
println(nums[1]) // "2" 

nums << 4
println(nums) // "[1, 2, 3, 4]"


nums << [5, 6, 7]
println(nums) // "[1, 2, 3, 4, 5, 6, 7]"

mut names := ['John']
names << 'Peter' 
names << 'Sam' 
// names << 10  <-- This will not compile. `names` is an array of strings. 
println(names.len) // "3" 
println('Alex' in names) // "false" 

// We can also preallocate a certain amount of elements. 
nr_ids := 50
ids := [0 ; nr_ids] // This creates an array with 50 zeroes 

 //....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...