mirror of
https://github.com/Open-Argon/argon-v3.git
synced 2025-12-06 00:46:07 +00:00
36 lines
581 B
Go
36 lines
581 B
Go
package main
|
|
|
|
func typeof(val any) string {
|
|
switch x := val.(type) {
|
|
case nil:
|
|
return "null"
|
|
case bool:
|
|
return "boolean"
|
|
case string:
|
|
return "string"
|
|
case []any:
|
|
return "array"
|
|
case anymap:
|
|
return "map"
|
|
case Callable:
|
|
return "function"
|
|
case builtinFunc:
|
|
return "function"
|
|
case byte:
|
|
return "byte"
|
|
case []byte:
|
|
return "buffer"
|
|
case ArObject:
|
|
if val, ok := x.obj["__name__"]; ok {
|
|
val := ArValidToAny(val)
|
|
if val, ok := val.(string); ok {
|
|
return val
|
|
}
|
|
}
|
|
return "object"
|
|
case accessVariable:
|
|
return "variable"
|
|
}
|
|
return "unknown"
|
|
}
|