Merge pull request #3634 from uvtc/patch-1

[Haxe/en] general-purpose, not specifically web-oriented
This commit is contained in:
Divay Prakash 2019-11-24 11:40:25 +05:30 committed by GitHub
commit 198be4d91f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -6,8 +6,8 @@ contributors:
- ["Dan Korostelev", "https://github.com/nadako/"] - ["Dan Korostelev", "https://github.com/nadako/"]
--- ---
Haxe is a web-oriented language that provides platform support for C++, C#, [Haxe](https://haxe.org/) is a general-purpose language that provides platform support for C++, C#,
Swf/ActionScript, Javascript, Java, PHP, Python, Lua, HashLink, and Neko byte code Swf/ActionScript, JavaScript, Java, PHP, Python, Lua, HashLink, and Neko bytecode
(the latter two being also written by the Haxe author). Note that this guide is for (the latter two being also written by the Haxe author). Note that this guide is for
Haxe version 3. Some of the guide may be applicable to older versions, but it is Haxe version 3. Some of the guide may be applicable to older versions, but it is
recommended to use other references. recommended to use other references.
@ -189,7 +189,7 @@ class LearnHaxe3 {
trace(m.get('bar') + " is the value for m.get('bar')"); trace(m.get('bar') + " is the value for m.get('bar')");
trace(m['bar'] + " is the value for m['bar']"); trace(m['bar'] + " is the value for m['bar']");
var m2 = ['foo' => 4, 'baz' => 6]; // Alternative map syntax var m2 = ['foo' => 4, 'baz' => 6]; // Alternative map syntax
trace(m2 + " is the value for m2"); trace(m2 + " is the value for m2");
// Remember, you can use type inference. The Haxe compiler will // Remember, you can use type inference. The Haxe compiler will
@ -234,10 +234,9 @@ class LearnHaxe3 {
^ Bitwise exclusive OR ^ Bitwise exclusive OR
| Bitwise inclusive OR | Bitwise inclusive OR
*/ */
// increments
var i = 0; var i = 0;
trace("Increments and decrements"); trace("Pre-/Post- Increments and Decrements");
trace(i++); // i = 1. Post-Increment trace(i++); // i = 1. Post-Increment
trace(++i); // i = 2. Pre-Increment trace(++i); // i = 2. Pre-Increment
trace(i--); // i = 1. Post-Decrement trace(i--); // i = 1. Post-Decrement
@ -287,7 +286,7 @@ class LearnHaxe3 {
} }
// do-while loop // do-while loop
var l = 0; var l = 0;
do { do {
trace("do statement always runs at least once"); trace("do statement always runs at least once");
} while (l > 0); } while (l > 0);
@ -338,7 +337,7 @@ class LearnHaxe3 {
*/ */
var my_dog_name = "fido"; var my_dog_name = "fido";
var favorite_thing = ""; var favorite_thing = "";
switch(my_dog_name) { switch (my_dog_name) {
case "fido" : favorite_thing = "bone"; case "fido" : favorite_thing = "bone";
case "rex" : favorite_thing = "shoe"; case "rex" : favorite_thing = "shoe";
case "spot" : favorite_thing = "tennis ball"; case "spot" : favorite_thing = "tennis ball";
@ -366,7 +365,7 @@ class LearnHaxe3 {
trace("k equals ", k); // outputs 10 trace("k equals ", k); // outputs 10
var other_favorite_thing = switch(my_dog_name) { var other_favorite_thing = switch (my_dog_name) {
case "fido" : "teddy"; case "fido" : "teddy";
case "rex" : "stick"; case "rex" : "stick";
case "spot" : "football"; case "spot" : "football";
@ -559,7 +558,7 @@ class SimpleEnumTest {
// You can specify the "full" name, // You can specify the "full" name,
var e_explicit:SimpleEnum = SimpleEnum.Foo; var e_explicit:SimpleEnum = SimpleEnum.Foo;
var e = Foo; // but inference will work as well. var e = Foo; // but inference will work as well.
switch(e) { switch (e) {
case Foo: trace("e was Foo"); case Foo: trace("e was Foo");
case Bar: trace("e was Bar"); case Bar: trace("e was Bar");
case Baz: trace("e was Baz"); // comment this line to throw an error. case Baz: trace("e was Baz"); // comment this line to throw an error.
@ -572,7 +571,7 @@ class SimpleEnumTest {
You can also specify a default for enum switches as well: You can also specify a default for enum switches as well:
*/ */
switch(e) { switch (e) {
case Foo: trace("e was Foo again"); case Foo: trace("e was Foo again");
default : trace("default works here too"); default : trace("default works here too");
} }
@ -595,21 +594,21 @@ class ComplexEnumTest {
var e1:ComplexEnum = IntEnum(4); // specifying the enum parameter var e1:ComplexEnum = IntEnum(4); // specifying the enum parameter
// Now we can switch on the enum, as well as extract any parameters // Now we can switch on the enum, as well as extract any parameters
// it might have had. // it might have had.
switch(e1) { switch (e1) {
case IntEnum(x) : trace('$x was the parameter passed to e1'); case IntEnum(x) : trace('$x was the parameter passed to e1');
default: trace("Shouldn't be printed"); default: trace("Shouldn't be printed");
} }
// another parameter here that is itself an enum... an enum enum? // another parameter here that is itself an enum... an enum enum?
var e2 = SimpleEnumEnum(Foo); var e2 = SimpleEnumEnum(Foo);
switch(e2){ switch (e2){
case SimpleEnumEnum(s): trace('$s was the parameter passed to e2'); case SimpleEnumEnum(s): trace('$s was the parameter passed to e2');
default: trace("Shouldn't be printed"); default: trace("Shouldn't be printed");
} }
// enums all the way down // enums all the way down
var e3 = ComplexEnumEnum(ComplexEnumEnum(MultiEnum(4, 'hi', 4.3))); var e3 = ComplexEnumEnum(ComplexEnumEnum(MultiEnum(4, 'hi', 4.3)));
switch(e3) { switch (e3) {
// You can look for certain nested enums by specifying them // You can look for certain nested enums by specifying them
// explicitly: // explicitly:
case ComplexEnumEnum(ComplexEnumEnum(MultiEnum(i,j,k))) : { case ComplexEnumEnum(ComplexEnumEnum(MultiEnum(i,j,k))) : {
@ -668,7 +667,7 @@ class TypedefsAndStructuralTypes {
That would give us a single "Surface" type to work with across That would give us a single "Surface" type to work with across
all of those platforms. all of those platforms.
*/ */
} }
} }
@ -700,8 +699,7 @@ class UsingExample {
instance, and the compiler still generates code equivalent to a instance, and the compiler still generates code equivalent to a
static method. static method.
*/ */
} }
} }
``` ```