1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00

all: use the new types with old syntax (#6922)

This commit is contained in:
Daniel Däschle
2020-11-24 13:58:29 +01:00
committed by GitHub
parent 8be9bdacd1
commit aa6303f0b2
22 changed files with 303 additions and 300 deletions

View File

@@ -66,11 +66,10 @@ pub fn null() Null {
// Use `Any` as a map.
pub fn (f Any) as_map() map[string]Any {
if f is map[string]Any {
return *f
return f
} else if f is []Any {
mut mp := map[string]Any
arr := f
for i, fi in arr {
for i, fi in f {
mp['$i'] = fi
}
return mp
@@ -80,9 +79,9 @@ pub fn (f Any) as_map() map[string]Any {
// Use `Any` as an integer.
pub fn (f Any) int() int {
match f {
int { return *f }
i64 { return int(*f) }
match union f {
int { return f }
i64 { return int(f) }
f64 { return f.str().int() }
f32 { return f.str().int() }
bool { return int(f) }
@@ -92,9 +91,9 @@ pub fn (f Any) int() int {
// Use `Any` as a 64-bit integer.
pub fn (f Any) i64() i64 {
match f {
int { return *f }
i64 { return int(*f) }
match union f {
int { return f }
i64 { return int(f) }
f64 { return f.str().i64() }
f32 { return f.str().i64() }
bool { return int(f) }
@@ -104,33 +103,32 @@ pub fn (f Any) i64() i64 {
// Use `Any` as a 32-bit float.
pub fn (f Any) f32() f32 {
match f {
int { return *f }
i64 { return (*f).str().f32() }
f64 { return (*f).str().f32() }
f32 { return *f }
match union f {
int { return f }
i64 { return f.str().f32() }
f64 { return f.str().f32() }
f32 { return f }
else { return 0.0 }
}
}
// Use `Any` as a float.
pub fn (f Any) f64() f64 {
match f {
int { return *f }
i64 { return *f }
f64 { return *f }
f32 { return (*f).str().f64() }
match union f {
int { return f }
i64 { return f }
f64 { return f }
f32 { return f.str().f64() }
else { return 0.0 }
}
}
// Use `Any` as an array.
pub fn (f Any) arr() []Any {
if f is []Any {
return *f
return f
} else if f is map[string]Any {
mut arr := []Any{}
mp := *f
for _, v in mp {
for _, v in f {
arr << v
}
return arr
@@ -140,9 +138,9 @@ pub fn (f Any) arr() []Any {
// Use `Any` as a bool
pub fn (f Any) bool() bool {
match f {
bool { return *f }
string { return (*f).bool() }
match union f {
bool { return f }
string { return f.bool() }
else { return false }
}
}