Home > iota

iota

Iota is a project mainly written in ..., it's free.

Emulates Go's iota.

=Summary

Iota is a Ruby module that emulates the iota keyword(?) from Google's Go programming language. Here is the example from golang.org/doc/effectivego.html: type ByteSize float64 const ( = iota; // ignore first value by assigning to blank identifier KB ByteSize = 1<<(10iota); MB; GB; TB; PB; YB; ) The equivalent Ruby Iota code is: require 'iota' include Iota set_iota 1 iota(%w(KB MB GB TB PB YB)) do |i| 1 << i 10 end MarkCC gives a simpler example: type Color int; const ( RED Color = iota; ORANGE = iota; YELLOW = iota; GREEN = iota; BLUE = iota; INDIGO = iota; VIOLET = iota; ) And the Ruby Iota code: RED = iota; ORANGE = iota; YELLOW = iota; GREEN = iota; BLUE = iota; INDIGO = iota; VIOLET = iota OK, but that is painfully inefficient. Let's go back to the array notation: iota %w(RED ORANGE YELLOW GREEN BLUE INDIGO VIOLET) Aaand... that's all. This is of course one of the least innovative things about the Go language, but we can perhaps strive to implement more.