mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
fix maps; use maps for storing functions; verify struct initialization
This commit is contained in:
@@ -25,7 +25,7 @@ pub:
|
||||
// next *Entry
|
||||
}
|
||||
|
||||
pub fn new_map(cap, elm_size int) map {
|
||||
fn new_map(cap, elm_size int) map {
|
||||
res := map {
|
||||
// len: len,
|
||||
element_size: elm_size
|
||||
@@ -59,15 +59,6 @@ fn (m mut map) _set(key string, val voidptr) {
|
||||
m.is_sorted = false
|
||||
}
|
||||
|
||||
fn volt_abs(n int) int {
|
||||
// println('volt_abs($n)')
|
||||
if n < 0 {
|
||||
// println('< 0: -($n)')
|
||||
return -n
|
||||
}
|
||||
return n
|
||||
}
|
||||
|
||||
fn (m map) bs(query string, start, end int, out voidptr) {
|
||||
// println('bs "$query" $start -> $end')
|
||||
mid := start + ((end - start) / 2)
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
struct User {
|
||||
name string
|
||||
}
|
||||
|
||||
struct A {
|
||||
m map_int
|
||||
m map[string]int
|
||||
users map[string]User
|
||||
}
|
||||
|
||||
fn (a mut A) set(key string, val int) {
|
||||
@@ -10,10 +15,19 @@ fn test_map() {
|
||||
mut m := map[string]int{}
|
||||
m['hi'] = 80
|
||||
assert m['hi'] == 80
|
||||
////
|
||||
mut users := map[string]User{}
|
||||
users['1'] = User{'Peter'}
|
||||
peter := users['1']
|
||||
assert peter.name == 'Peter'
|
||||
|
||||
mut a := A{
|
||||
m: new_map(1, sizeof(int))
|
||||
m: map[string]int{}
|
||||
users: map[string]User{}
|
||||
}
|
||||
a.users['Bob'] = User{'Bob'}
|
||||
q := a.users['Bob']
|
||||
assert q.name == 'Bob'
|
||||
a.m['one'] = 1
|
||||
a.set('two', 2)
|
||||
assert a.m['one'] == 1
|
||||
|
||||
@@ -636,7 +636,6 @@ __global g_ustring_runes []int
|
||||
pub fn (s string) ustring_tmp() ustring {
|
||||
mut res := ustring {
|
||||
s: s
|
||||
runes: 0
|
||||
}
|
||||
res.runes = g_ustring_runes
|
||||
res.runes.len = s.len
|
||||
|
||||
Reference in New Issue
Block a user