diff options
-rw-r--r-- | haxe.html.markdown | 61 |
1 files changed, 29 insertions, 32 deletions
diff --git a/haxe.html.markdown b/haxe.html.markdown index a50b3dbb..f7633dbf 100644 --- a/haxe.html.markdown +++ b/haxe.html.markdown @@ -17,7 +17,8 @@ recommended to use other references. Welcome to Learn Haxe 3 in 15 minutes. http://www.haxe.org This is an executable tutorial. You can compile and run it using the haxe compiler, while in the same directory as LearnHaxe.hx: - $> haxe -main LearnHaxe3 -x out + + $ haxe -main LearnHaxe3 --interp Look for the slash-star marks surrounding these paragraphs. We are inside a "Multiline comment". We can leave some notes here that will get ignored @@ -98,7 +99,7 @@ class LearnHaxe3 { // Trace can handle any type of value or object. It will try to print // a representation of the expression as best it can. You can also // concatenate strings with the "+" operator: - trace( " Integer: " + 10 + " Float: " + 3.14 + " Boolean: " + true); + trace("Integer: " + 10 + " Float: " + 3.14 + " Boolean: " + true); // In Haxe, it's required to separate expressions in the same block with // semicolons. But, you can put two expressions on one line: @@ -215,7 +216,7 @@ class LearnHaxe3 { trace((8 / 3) + " is the value for (8 / 3) (a Float)"); trace((12 % 4) + " is the value for (12 % 4)"); - //basic comparison + // basic comparison trace((3 == 2) + " is the value for 3 == 2"); trace((3 != 2) + " is the value for 3 != 2"); trace((3 > 2) + " is the value for 3 > 2"); @@ -225,15 +226,13 @@ class LearnHaxe3 { // standard bitwise operators /* - - ~ Unary bitwise complement - << Signed left shift - >> Signed right shift - >>> Unsigned right shift - & Bitwise AND - ^ Bitwise exclusive OR - | Bitwise inclusive OR - + ~ Unary bitwise complement + << Signed left shift + >> Signed right shift + >>> Unsigned right shift + & Bitwise AND + ^ Bitwise exclusive OR + | Bitwise inclusive OR */ // increments @@ -252,16 +251,16 @@ class LearnHaxe3 { // if statements var j = 10; - if (j == 10){ + if (j == 10) { trace("this is printed"); - } else if (j > 10){ + } else if (j > 10) { trace("not greater than 10, so not printed"); } else { trace("also not printed."); } // there is also a "ternary" if: - (j == 10) ? trace("equals 10") : trace("not equals 10"); + (j == 10) ? trace("equals 10") : trace("not equals 10"); // Finally, there is another form of control structure that operates // at compile time: conditional compilation. @@ -282,7 +281,7 @@ class LearnHaxe3 { // while loop var k = 0; - while (k < 100){ + while (k < 100) { // trace(counter); // will print out numbers 0-99 k++; } @@ -297,7 +296,7 @@ class LearnHaxe3 { // There is no c-style for loop in Haxe, because they are prone // to error, and not necessary. Instead, Haxe has a much simpler // and safer version that uses Iterators (more on those later). - var m = [1,2,3]; + var m = [1, 2, 3]; for (val in m) { trace(val + " is the value for val in the m array"); } @@ -339,7 +338,7 @@ class LearnHaxe3 { */ var my_dog_name = "fido"; var favorite_thing = ""; - switch(my_dog_name){ + switch(my_dog_name) { case "fido" : favorite_thing = "bone"; case "rex" : favorite_thing = "shoe"; case "spot" : favorite_thing = "tennis ball"; @@ -387,14 +386,14 @@ class LearnHaxe3 { // You can convert strings to ints fairly easily. // string to integer - Std.parseInt("0"); // returns 0 - Std.parseFloat("0.4"); // returns 0.4; + Std.parseInt("0"); // returns 0 + Std.parseFloat("0.4"); // returns 0.4 // integer to string - Std.string(0); // returns "0"; + Std.string(0); // returns "0" // concatenation with strings will auto-convert to string. - 0 + ""; // returns "0"; - true + ""; // returns "true"; + 0 + ""; // returns "0" + true + ""; // returns "true" // See documentation for parsing in Std for more details. @@ -425,8 +424,8 @@ class LearnHaxe3 { The other more extreme option is the "untyped" keyword: */ untyped { - var x:Int = 'foo'; // this can't be right! - var y:String = 4; // madness! + var x:Int = 'foo'; // This can't be right! + var y:String = 4; // Madness! } /* @@ -537,7 +536,7 @@ class BarClass { } // A simple interface to implement -interface BarInterface{ +interface BarInterface { public function baseFunction(x:Int):String; } @@ -581,7 +580,7 @@ class SimpleEnumTest { } // Enums go much further than simple states, we can also enumerate -// *constructors*, but we'll need a more complex enum example +// *constructors*, but we'll need a more complex enum example. enum ComplexEnum { IntEnum(i:Int); MultiEnum(i:Int, j:String, k:Float); @@ -596,7 +595,7 @@ class ComplexEnumTest { var e1:ComplexEnum = IntEnum(4); // specifying the enum parameter // Now we can switch on the enum, as well as extract any parameters // it might of had. - switch(e1){ + switch(e1) { case IntEnum(x) : trace('$x was the parameter passed to e1'); default: trace("Shouldn't be printed"); } @@ -610,7 +609,7 @@ class ComplexEnumTest { // enums all the way down var e3 = ComplexEnumEnum(ComplexEnumEnum(MultiEnum(4, 'hi', 4.3))); - switch(e3){ + switch(e3) { // You can look for certain nested enums by specifying them // explicitly: case ComplexEnumEnum(ComplexEnumEnum(MultiEnum(i,j,k))) : { @@ -624,7 +623,7 @@ class ComplexEnumTest { } class TypedefsAndStructuralTypes { - public static function example(){ + public static function example() { // Here we're going to use typedef types, instead of base types. // At the top we've declared the type "FooString" to mean a "String" type. var t1:FooString = "some string"; @@ -653,9 +652,7 @@ class TypedefsAndStructuralTypes { ?optionalString: String, requiredInt: Int } - */ - /* Typedefs work well with conditional compilation. For instance, we could have included this at the top of the file: |