mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
a special last
variable in for loops (experimental)
This commit is contained in:
parent
d279cedd28
commit
425c9ce401
@ -479,3 +479,17 @@ fn test_eq() {
|
||||
assert [5,6,7].eq([6,7]) == false
|
||||
assert [`a`,`b`].eq([`a`,`b`]) == true
|
||||
}
|
||||
|
||||
fn test_for_last() {
|
||||
numbers := [1, 2, 3, 4]
|
||||
mut s := '['
|
||||
for num in numbers {
|
||||
s += '$num'
|
||||
if !last {
|
||||
s += ', '
|
||||
|
||||
}
|
||||
}
|
||||
s += ']'
|
||||
assert s == '[1, 2, 3, 4]'
|
||||
}
|
||||
|
@ -3377,6 +3377,15 @@ fn (p mut Parser) for_st() {
|
||||
else if is_arr {
|
||||
typ = typ[6..]// all after `array_`
|
||||
p.gen_for_header(i, tmp, typ, val)
|
||||
p.register_var(Var {
|
||||
name: 'last'
|
||||
typ: 'bool'
|
||||
is_mut: false
|
||||
is_used: true
|
||||
})
|
||||
// TODO don't generate if it's not used.
|
||||
// Otherwise it's a C warning + perf.
|
||||
p.genln('bool last = $i == $tmp . len - 1;')
|
||||
}
|
||||
else if is_str {
|
||||
typ = 'byte'
|
||||
|
Loading…
Reference in New Issue
Block a user