Az Io programozási nyelv

Típusok, típuskonstrukciók

Primitívek

Az Io-ba épített primitívek objektumok, melyek többnyire C-ben lettek megvalósítva és ábrázolásuk az adatszerkezetbe rejtett plusz információkat igényel.
Object, List, Map, Sequence, Ranges, File, Directory, Date, Networking, XML, Vector
Mindegyik közös prototípusa az Object.

Lista

A lista tetszőleges típusú objektumok rendezett kollekciója. Minden lista prototípusa a List.

Példák:

toDos := list("find my car", "find Continuum Transfunctioner")
==> list("find my car", "find Continuum Transfunctioner")
toDos size
==> 2
toDos append("Find a present")
==> list("find my car", "find Continuum Transfunctioner", "Find a present")

A list az Object metódusa, argumentumaiból listát képez.

list(1, 2, 3, 4)
==> list(1, 2, 3, 4)

Maga a List biztosít listakezelő és a listákon végezhető matematikai számításokat megkönnyítő metódusokat.

list(1, 2, 3, 4) average
==> 2.5
list(1, 2, 3, 4) sum
==> 10
list(1, 2, 3) at(1)
==> 2
list(1, 2, 3) append(4)
==> list(1, 2, 3, 4)
list(1, 2, 3) pop
==> 3
list(1, 2, 3) prepend(0)
==> list(0, 1, 2, 3)
list() isEmpty
==> true

Map

A map kulcs-érték párokat tartalmaz. Minden map prototípusa a Map.

elvis := Map clone
==> Map_0x115f580:
elvis atPut("home", "Graceland")
==> Map_0x115f580:
elvis at("home")
==> Graceland
elvis atPut("style", "rock and roll")
==> Map_0x115f580:
elvis asObject
==> Object_0x11c1d90: home = "Graceland" style = "rock and roll"
elvis asList
==> list(list("style", "rock and roll"), list("home","Graceland"))
elvis keys
==> list("style", "home")
elvis size
==> 2