/** AWK~plus - Command line options.
 */
@CompileStatic
var S1: String = "abc"  # <-' 12'(String)
var S2: String = "def"  # <- 345 (Integer)
var N1: int = 123       # <- 1.5 (Double)
var N2: int = 456       # <- 67X (String)
BEGIN {
    print "   .Groovy Type conversions"
    print "\t.FS", "'"FS"'"
    print "\t.S1", S1, S1.getClass()  # ' 12'
    print "\t.S2", S2, S2.getClass()  # '345'  強制型変換(Forced conversion)
    print "\t.N1", N1, N1.getClass()  # 1   ダウンキャスト(Downcast)
    print "\t.N2", N2, N2.getClass()  # 67  atoi()
}
    {
    print "  ", FILENAME, "\t", NR, FNR, NF, FS, $0
}
# Groovyでは、型指定しない場合の型は、Objectであるが、指定した場合は、強制型変換される.
# In Groovy, if the type is not specified, the type is Object,
# but if it is specified, it will be coerced.