Files
argon-v3/src/typeof.go
2023-04-08 15:34:20 +02:00

34 lines
553 B
Go

package main
func typeof(val any) string {
switch x := val.(type) {
case number:
return "number"
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 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"
}