Difference between revisions of "Datatype Conversions"

From Kolmafia
Jump to navigation Jump to search
imported>Bale
(to_bounty, to_thrall)
imported>Fredg1
(path_id_to_name and path_name_to_id)
 
Line 10: Line 10:
 
{{flink|familiar|to_familiar|string|desc=Converts an int or a string to a familiar.}}
 
{{flink|familiar|to_familiar|string|desc=Converts an int or a string to a familiar.}}
 
{{flink|float|to_float|any|desc=Converts from any datatype to a float.}}
 
{{flink|float|to_float|any|desc=Converts from any datatype to a float.}}
 +
{{flink|int|path_name_to_id|string}}
 
{{flink|int|to_int|any|desc=Converts from any datatype to an int.}}
 
{{flink|int|to_int|any|desc=Converts from any datatype to an int.}}
 
{{flink|item|to_item|string}}
 
{{flink|item|to_item|string}}
Line 24: Line 25:
 
{{flink|slot|to_slot|string|desc=Converts an item or string to a slot.}}
 
{{flink|slot|to_slot|string|desc=Converts an item or string to a slot.}}
 
{{flink|stat|to_stat|string|desc=Converts a string to a stat.}}
 
{{flink|stat|to_stat|string|desc=Converts a string to a stat.}}
 +
{{flink|string|path_id_to_name|int}}
 
{{flink|string|to_string|any|desc=Converts any datatype to a string.}}
 
{{flink|string|to_string|any|desc=Converts any datatype to a string.}}
 
{{flink|thrall|to_thrall|string}}
 
{{flink|thrall|to_thrall|string}}

Latest revision as of 00:14, 8 June 2020

These functions will convert one type of data to another.

boolean to_boolean( any )

Converts any datatype to a boolean.

bounty to_bounty( string )

Converts a string to a bounty.

class to_class( string )

Converts a string to a class.

effect to_effect( int )

effect to_effect( string )

effect to_effect( skill )

Converts an int, string or skill to an effect.

element to_element( string )

Converts a string to an element.

familiar to_familiar( int )

familiar to_familiar( string )

Converts an int or a string to a familiar.

float to_float( any )

Converts from any datatype to a float.

int path_name_to_id( string )

int to_int( any )

Converts from any datatype to an int.

item to_item( string )

item to_item( int )

item to_item( string, int )

Converts an int or a string to an item (optionally allowing plural strings with both parameters).

location to_location( string )

Converts a string to a location.

monster to_monster( string )

Converts a string to a monster.

phylum to_phylum( string )

Converts a string to a phylum.

string to_plural( item )

Converts an item into the string value of its plural.

skill to_skill( int )

skill to_skill( string )

skill to_skill( effect )

Converts an int, string or effect to a skill.

slot to_slot( item )

slot to_slot( string )

Converts an item or string to a slot.

stat to_stat( string )

Converts a string to a stat.

string path_id_to_name( int )

string to_string( any )

Converts any datatype to a string.

thrall to_thrall( string )

thrall to_thrall( int )

Converts a string or int to a thrall.

Historical note

ASH did not originally support polymorphic functions, so it was not possible to have (for example) a single to_string(any) function that worked on any datatype. Instead, there were separate int_to_string(int), item_to_string(item), etc. functions. You may see these used in older scripts, and in fact they still work. The rule is that if a function name is not otherwise defined anywhere, and it ends with one of the modern type conversion function names shown above, it is treated as a call to the modern function. No check is made to verify that the chopped-off portion of the old function name actually matches the type of its parameter.